Plausible Docker automatisch neustarten – Bash Script

Da sich meine Plausible Container ab und an aufgehangen haben und ich es leider oft erst 2,3 Tage später mitbekommen habe, habe ich ein kleines Script gebaut.

Das Script läuft als Cronjob aller 5 Minuten und prüft den Statuscode meiner Plausible Domain. Ist dieser 502 starte ich die entsprechenden Container neu.

#!/bin/bash

status_code=$(curl --write-out %{http_code} --silent --output /dev/null https://plausible.mydomain.com)

if [[ "$status_code" -eq 502 ]] ; then
  echo "Restart Plausible Container"
  cd /var/www/docker/plausible/hosting/
  docker-compose up --detach
else
  exit 0
fi

Android – Prüfen ob eine View in der Scrollview aktuell sichtbar ist

Prüfen, ob eine View innerhalb einer Scrollview aktuell im sichtbaren Bereich ist, kann man mit folgender Funktion realisieren. Die Funktion gibt false zurück, sobald sich ein Teil der View außerhalb des sichtbaren Bereichs befindet. Dies eignet sich z.b. gut um bei Videoplayern automatisch beim scrollen in den Picture-In-Picture (PIP) Modus zu springen.

Kotlin:

private fun isViewVisible(view: View): Boolean {
    val scrollBounds = Rect()
    mScrollView.getDrawingRect(scrollBounds)
    val top = view.y
    val bottom = top + view.height
    return if (scrollBounds.top < top && scrollBounds.bottom > bottom) {
        true
    } else {
        false
    }
}

Flutter Doctor – Android Studio not installed

Wenn Flutter Doctor das Android Studio nicht findet, wurde es vermutlich nicht im Standard Pfad installiert. Dazu einfach mit folgendem Befehl den korrekten Pfad setzen:
flutter config –android-studio-dir=“

Bei Windows mit Jetbrains Toolbox sieht das z.b. so aus:

flutter config --android-studio-dir="C:\Users\username\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\201.7199119"

Bei Ubuntu könnte der Befehl so aussehen:

flutter config --android-studio-dir=/home/username/.local/share/JetBrains/Toolbox/apps/AndroidStudio/ch-0/201.7042882

Cors direkt im Browser testen

Ob die Cors Header korrekt gesetzt wurden , kann man einfach im Browser in der JS Console testen. Einfach folgendes Snippet einfügen:

var corstestHttp = new XMLHttpRequest();
var  corstesturl='http://google.de';
corstestHttp.open("GET", corstesturl);
corstestHttp.send();

corstestHttp.onreadystatechange = (e) => {
  console.log(corstestHttp.responseText)
}

Verwendete PHP.ini ausgeben

Manchmal ist es nicht so einfach die verwendete PHP.ini zu finden. Grade auf fremden Servern findet man ab und an relativ viele PHP.ini Files, die gar nicht in Verwendung sind.

Mit dem kurzen Snippet bekommt man direkt die geladene PHP.ini Datei angezeigt:

php -i | grep -i "loaded configuration file"

Dennoch kann es bei diversen Vhost Konstellationen dazu kommen, dass man hierbei nicht die richtige PHP.ini für die aktuelle Domain ausgegeben bekommt.

Alternativ kann man ein PHP Script dazu nutzen, die verwendete .ini anzuzeigen


$ini = php_ini_loaded_file();
if ($ini) {
    echo 'php.ini path: ' . $ini;
} else {
    echo 'error - keine php.ini geladen / auslesbar';
}

Git – Add trotz Fatal Meldung

Ab und zu gibt es Zugrifsprobleme auf Dateien beim Hinzufügen zum Git. Es können falsche Dateirechte sein oder aktive Prozesse. Eigentlich sollte man diese Fehler beheben und den Git-Add-Vorgang erneut starten.

So könnte es Beispielsweise aussehen:

git add .
error: open(".mysql_history"): Permission denied
fatal: unable to index file .mysql_history

Möchte man die Fehler bewusst nicht beheben, so gibt es den parameter –ignore-errors der den Vorgang trotz der Fehler ausführt.

Git Add –ignore Errors

git add --ignore-errors .