I will have to get rid of Google Chrome

They introduced “Google Search side panel”.
There is no way I can get rid of it.
There have been various solutions on the net, but none work, not even extensions work.

I don’t want search to open in a side panel.
I want it in a new tab, where I can see the address bar and have full width.

Every topic created on their support forum is closed.

I’ll have to migrate all my passwords to Firefox Sync.
Bookmark migration is not a big deal.
And finally replace Chrome on the phone too with Firefox, despite its call of features.

Google don’t fuck my with search experience, or I’ll get rid of you completely.
Those small Adsense amounts are not worth the trouble with your spying, annoying, racist against stragith white males company.

Heise Nagscreen blocken mit uBlock Origin

Diese 2 Zeilen blocken aktuell das Cookie/Pur Abo Modal und entfernen den Scroll-lock, so dass man wieder runter- und hochscrollen kann.

Copy large qcow2 image via rsync between 2 servers

Very large (400GB+) .qcow2 file that needs to be copied from HostA to HostB, where HostB is behind an ISP that does 24 hour disconnection of the connection.
Also because other people live in that household that use TV streaming, the bandwidth consumed should be limited.
In this case I’m on a 100MBit/s connection, and I’ll limit the transfer speed to 4MB/s.

We will use rsync for this.

The command is simply,

sparse means, skip transfering zeroes or empty, unfilled data.
bwlimit=4000 means limit the transfer speed to 4000 kByte / second. aka 4Mbps.
info=progress2 shows a prettier progress than just --progress
partial and append-verify allows us the resume the transfer one the 24 hour disconnection kicks in, without needing to start from the beginning. It also verifies the transferred.

Today I learned about NATS, microservice API and security

Actual security, as in identity, is still a 3rd party thing, aka you still need a OIDC IDP (or oauth2 in the broadest sense or similar).
All NATS security does is validate that the credentials you pass the a client are valid and enforce limits, if configured.

The microservice API was necessary, since simple request/reply structure was lacking errors, logging and statistics.
micro.Request actually has a convenience req.RespondJSON() function.

A small example?

So right now I have, ent for the database stuff and nats over websocket for the service requests.
But I’m having big issues with NATS Jetstream.
The ws client is blocking, despite callbacks and async.

The micro package also has a long way to go.
Regular HTTP has middleware, micro doesn’t seem to have it, maybe I’m missing something. OTOH I could just pass the request to a next function, but it’s not very elegant.