Fixing Java Runtime

Wanted to try Bisq, but got error

bisq-desktop                                                                                                               [7:45:13]
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: bisq/desktop/app/BisqAppMain has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(
	at Method)
	at java.lang.ClassLoader.loadClass(
	at sun.misc.Launcher$AppClassLoader.loadClass(
	at java.lang.ClassLoader.loadClass(
	at sun.launcher.LauncherHelper.checkAndLoadMain(

Solution was to set JAVA_HOME before running it

JAVA_HOME=/usr/lib/jvm/java-11-openjdk bisq-desktop

I ended up aliasing it

alias bisq-desktop='JAVA_HOME=/usr/lib/jvm/java-11-openjdk bisq-desktop'

Sponsored Post Learn from the experts: Create a successful blog with our brand new courseThe Blog

Are you new to blogging, and do you want step-by-step guidance on how to publish and grow your blog? Learn more about our new Blogging for Beginners course and get 50% off through December 10th. is excited to announce our newest offering: a course just for beginning bloggers where you’ll learn everything you need to know about blogging from the most trusted experts in the industry. We have helped millions of blogs get up and running, we know what works, and we want you to to know everything we know. This course provides all the fundamental skills and inspiration you need to get your blog started, an interactive community forum, and content updated annually.

Set Brave browser as default in Linux

You might test/check if it isn’t already with

$ xdg-mime query default x-scheme-handler/http
$ xdg-settings get default-web-browser
$ echo $BROWSER

To set xdg-mime

$ xdg-mime default brave-browser.desktop x-scheme-handler/http
$ xdg-mime default brave-browser.desktop x-scheme-handler/https

Setting BROWSER env via .bashrc or .zshrc just append export BROWSER=/usr/bin/brave

Monitor remote service via LibreNMS

I wanted to monitor with LibreNMS if transmission-daemon process is running . On the remote host I had to install due check_procs command

Test monitoring command

$ cd /usr/lib/monitoring-plugins
$ ./check_procs -c 1:1 -a transmission-daemon
PROCS OK: 1 process with args 'transmission-daemon' | procs=1;;1:1;0;

Also on the remote host I had to install LibreNMS agent Check_MK which pushes data to LibreNMS server. Had to download and configure check_mrpe

mv check_mrpe /usr/lib/check_mk_agent/local
chmod +x /usr/lib/check_mk_agent/local/check_mrpe
echo "transmission /usr/lib/monitoring-plugins/check_procs -c 1:1 -a transmission-daemon" > /etc/check_mk/mrpe.cfg

To monitor transmission service I had to Add service in LibreNMS service, select type mrpe and fill parameters

Save tabs/context in PHPStorm

Today I wanted to save open file tabs in PHPStorm due task switch so if I had to come back to the previous task I would have some guidance. Fortunately PHPStorm has some help for this, read

Just enable plugin Task management

After restarting you should see Tasks & Contexts under Tools

Migrating back to Xiaomi smartphone

After some hours, days of review/research the winner is Xiaomi Mi Note 10 Lite
My current Sony Xperia XZ 2 was great during 2 years of usage, but instead having IP68 the Rotate a Brightness adaptation doesn’t work anymore 😦
My research candidates were OnePlus 7T (great HW and UI), Nokia 7.2 (due Android One participation) and Pixel 4
OnePlus folded due still high price, Nokia, because of the UI of bottom navigation and Google Pixel 4 is too expensive for the included hardware.

So Xiaomi became the winner due hardware, but also due previous good experience. My son inherited the Xiaomi Redmi 4A from me and after his “caring” usage (5 year old) the phone still works (also the adaptive brightness and rotate)


Hope that Android Auto will work properly.

Notes from Calibrating Memo of Howard Marks

“What I would to is figure out how much you’ll want to have invested by the time the bottom is reached”
“All great investments begin in discomfort. One thing we know is that there’s great discomfort today”
“Oaktree explicitly rejects the notion of waiting for the bottom; we buy when we can access value cheap.”
“The investor’s goal should be to make a large number of good buys, not just a few perfect ones.”

Mosaic/grid view of RTSP streams with ffmpeg

Finally found a solution for grid/mosaic playback of RTSP streams.

ffmpeg -rtsp_transport tcp \
-i rtsp://smartiptv:PASSWORD@ \
-i rtsp://smartiptv:PASSWORD@ \
-i rtsp://smartiptv:PASSWORD@ \
-i rtsp://smartiptv:PASSWORD@ \
-filter_complex "
nullsrc=size=1920×1080 [base];
[0:v] setpts=PTS-STARTPTS, scale=960×540 [upperleft];
[1:v] setpts=PTS-STARTPTS, scale=960×540 [upperright];
[2:v] setpts=PTS-STARTPTS, scale=960×540 [lowerleft];
[3:v] setpts=PTS-STARTPTS, scale=960×540 [lowerright];
[base][upperleft] overlay=shortest=1 [tmp1];
[tmp1][upperright] overlay=shortest=1:x=960 [tmp2];
[tmp2][lowerleft] overlay=shortest=1:y=540 [tmp3];
[tmp3][lowerright] overlay=shortest=1:x=960:y=540
" \
-c:v libx264 -preset superfast -crf 18 -f matroska – | ffplay –


Yahoo finance stock data in Google Spreadsheet

Made my first script in Google Spreadsheet

function YahooFinance(ticker) {
var ticker = ticker || "GOOG";
ticker = encodeURI(ticker);
var response = UrlFetchApp.fetch("" + ticker);
var chain = JSON.parse(response.getContentText());
return parseFloat(chain.optionChain.result[0].quote.regularMarketPrice);

view raw
hosted with ❤ by GitHub


In Spreadshhet just click Tools > Script editor to add the script

After saving the script you can call it in the spreadsheet cell

=IF(A2 <> "", YahooFinance(A2), 0)


Remotely connecting to existing X server via VNC server

My goal was to connect to a remote desktop. Had to tweak systemd to autologin with specific user.

sudo vim /etc/systemd/system/getty@tty1.service.d/autologin.conf
ExecStart=-/usr/bin/agetty --autologin mike --noclear %I $TERM

I’m a zsh user so had to add the following into ~/.zprofile

if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
    exec startx

So after these changes after rebooting the PC the X server started and I could connect to it.

Just had to start

x0vncserver -display :0 -rfbauth .vnc/passwd

Sat Mar 28 16:18:32 2020
 Geometry:    Desktop geometry is set to 3840x1200+0+0
 XDesktop:    Using evdev codemap
 XDesktop:    XTest extension present - version 2.2
 XDesktop:    RANDR extension not present
 XDesktop:    Will not be able to handle session resize
 Main:        Listening on port 5900

The desktop has no public IP so I had to port forward

ssh vnc-server -L 9900:localhost:5900

Now I was able to connect with vncviewer

vncviewer localhost:9900
TigerVNC Viewer 64-bit v1.10.1
Built on: 2019-12-27 09:17
Copyright (C) 1999-2019 TigerVNC Team and many others (see README.rst)
See for information on TigerVNC.

Sat Mar 28 16:20:09 2020
 DecodeManager: Detected 8 CPU core(s)
 DecodeManager: Creating 4 decoder thread(s)
 CConn:       Connected to host localhost port 9900
 CConnection: Server supports RFB protocol version 3.8
 CConnection: Using RFB protocol version 3.8
 CConnection: Choosing security type VeNCrypt(19)
 CVeNCrypt:   Choosing security type TLSVnc (258)