Archiv der Kategorie: Allgemeines

Shell: Batch-Konvertierung von .ogg zu .mp3

Alle ogg-Dateien im Verzeichnis in das MP3-Format umwandeln:

for i in *.ogg; do ffmpeg -i "$i" -acodec libmp3lame "${i%.*}.mp3"; done

Als Voraussetzung wird das Paket „ffmpeg“ benötigt (sudo apt install ffmpeg), danach wird mit „cd“ in den gewünschten Ordner gewechselt…

Postgres: Label in ENUM-Types umbennen in Postgres 9

Postgres 10 verfügt über einen Befehl für das Umbennen von ENUM-Values. Postgres 9 nicht.

Gesetzt den Fall wir hätten ein ein ENUM-Type der Art:

CREATE TYPE purchase_type_enum AS ENUM ('undefined', 'mailorder', 'ecommerce');

Dann wollen wir den Wert „undefined“ (der so in Javascript vorkommen könnte) in „unconfigured“ umbennen. So lässt sich das in Postgres 9 lösen:

UPDATE pg_enum SET enumlabel = 'unconfigured'
WHERE enumlabel = 'undefined' AND enumtypid = (
SELECT oid FROM pg_type WHERE typname = 'purchase_type_enum'
);

Linux: Thin-Client als Server und Raspberry-Ersatz

Preiswerter und flexibler als ein Raspberry-Pi: Thin-Client als Server.
Thin-Clients sind derzeit für kleines Geld zu bekommen (zB: itniederrheinshop.de für unter 20 EUR)

Fujitsu Futro S900 AMD G-T40N 1 GHz, AMD Radeon HD6250:

  • Gigabit Ethernet
  • 2 GB DDR3-RAM
  • mSata-Slot 2 GB (reicht für minimales System)
  • Sata-Anschluß (allerdings wird ein spezielles Sata-Stromkabel benötigt)
  • wake-on-lan, wake-on-clock
  • Passive Kühlung = keine Geräusche / Verschleiß
  • geringer Stromverbrauch
  • Smartcard-Slot kann ausgebaut werden und bietet dann 2,5″ SSD Platz
  • DVI und Display-Port Videoanschluß

USB-Stick mit Debian 10 Netinstall vorbereiten und vom Stick booten (F2=Bios, F12=Bootmenu). Als Desktop-Umgebung wurde LXQT gewählt (Nachfolger von LXDE). Sinnvolles Paket: SSH-Server, Print-Server. Speicherverbrauch im Ruhebetrieb mit Desktop: 331 MB.

Nach der Installation ist die Auflösung allerdings sehr beschränkt, weil der Radeon-Grafiktreiber fehlt. Das lässt sich schnell abstellen:

Eintragen der non-free und contrib Pakete für apt:

# nano /etc/apt/sources.list

deb http://deb.debian.org/debian/ buster main non-free contrib
deb-src http://deb.debian.org/debian/ buster main non-free contrib

deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free

# apt update

# apt install firmware-linux-nonfree libgl1-mesa-dri xserver-xorg-video-ati

Nach dem Reboot steht die WUXGA-Auflösung bis 1920×1200 zur Verfügung.

Spar-Tipp:
Kostengünstige Speicheraufrüstung: Man kauft sich beim gleichen Händler noch einen HP-T510 Thin-Client. Der hat zwar nur 1 GB IDE-Flashspeicher, verfügt aber über 4 GB DDR3-RAM und kostet ebenfalls unter 20 EUR.
Für das Geld bekommt man keinen 4 GB Speicherriegel. Wer dann noch einen USB-Stick > 4 GB rumliegen hat, kann den HP-Rechner mit dem 2 GB aus dem Futro bestücken und hat ein zweites (schwächeres) System mit Gigabit-Ethernet.

Der HP hat übrigens ebenfalls Auflösungsprobleme (max. Auflösung 1024×768), was durch Installation von xserver-xorg-video-openchrome behoben werden kann.

Nachtrag:

Funktioniert auch beim leistungsstärkeren Modell Futro S920, was durch die 4 Threads und mehr Speicher als Server für Homeautomation geeeignet ist (MQTT, Node-Red, Influxdb2)

Hofmann-Menü Essensausgabe simpel

Hofmann Menü-Manufaktur hat zwar ein Online-Abrechnungssystem, doch dafür muss bezahlt werden. Wer die Abrechnung machen muss kann sich aber einfacher Bordmittel bedienen.

Benötigt werden ein (lokaler) Webserver mit MySql/MariaDb und Adminer. Des weiteren wird eine SQL-Datei für den Import benötigt. Die Import-Datei gibt es hier.

Zu jeder Essen gibt es eine zweiteilige Marke. Der obere Teil „Bestellung“ mit dem Loch wird abgegeben und der untere Teil „Abhol-Coupon“ verbleibt beim „Kunden“. Beispiel-Marke.

Vor der Inbetriebnahme müssen die „meals“- und die „users“-Tabelle im Adminer aktualisiert werden. Ein paar Menüs sind bereits in der SQL-Datei enthalten.

Nach der Essensausgabe werden die eingesammelten Bestellungen eingegeben (Tabelle meals_users). Adminer gibt bei jedem neuen Datensatz eine Meldung mit der neu angelegten ID aus.
Diese kann dann auf der Marke notiert werden (im Beispiel „100“). Die Marken werden zum Nachweis abgeheftet und dienen bei Nachfrage als Beweis/Beleg.

Der View „offene_posten“ listet alle offnen Bestellungen mit Namenskürzel, Summe und Zeitraum der Essensausgabe auf.

Lediglich das austragen/bezahlen muss derzeit noch manuell im SQL-Teil des Adminers erfolgen:

UPDATE meals_users SET payment_date = ‚yyymmdd‘ WHERE user_alias=’xy‘ AND payment_date IS NULL AND issue_date <= ‚yyymmdd‘;