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(ClassLoader.java:756)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:601)

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'

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
google-chrome.desktop
$ xdg-settings get default-web-browser
brave-browser.desktop
$ echo $BROWSER
/usr/bin/brave

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 https://www.monitoring-plugins.org/ 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

wget https://raw.githubusercontent.com/librenms/librenms-agent/master/agent-local/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 https://www.jetbrains.com/help/phpstorm/managing-tasks-and-context.html#work-with-context

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
https://www.gsmarena.com/xiaomi_mi_note_10_lite-10183.php
My current Sony Xperia XZ 2 https://www.gsmarena.com/sony_xperia_xz2-9081.php was great during 2 years of usage, but instead having IP68 https://en.wikipedia.org/wiki/IP_Code 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 https://www.gsmarena.com/xiaomi_redmi_4a-8420.php from me and after his “caring” usage (5 year old) the phone still works (also the adaptive brightness and rotate)

DSC_0112

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@192.168.2.3:6911/Streaming/Channels/101 \
-i rtsp://smartiptv:PASSWORD@192.168.2.3:6911/Streaming/Channels/201 \
-i rtsp://smartiptv:PASSWORD@192.168.2.3:6911/Streaming/Channels/301 \
-i rtsp://smartiptv:PASSWORD@192.168.2.3:6911/Streaming/Channels/401 \
-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 –

Source: https://trac.ffmpeg.org/wiki/Create%20a%20mosaic%20out%20of%20several%20input%20videos

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("https://query2.finance.yahoo.com/v7/finance/options/" + ticker);
var chain = JSON.parse(response.getContentText());
return parseFloat(chain.optionChain.result[0].quote.regularMarketPrice);
}

view raw
YahooFinance.js
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
[Service]
ExecStart=
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
fi

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:    
 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 https://www.tigervnc.org 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)