Mittwoch Dez 28, 2016

m4a Dateien in mp3 konvertieren mit ffmpeg unter Linux

Mit folgender Kommandozeile kann man mit ffmpeg m4a Sounddateien ins mp3 Format umwandeln:

find . -type f -name '*.m4a' -exec bash -c 'ffmpeg -i "$0" "${0/%m4a/mp3}"' '{}' \;

Mit find suchen wir uns erst mal alle m4a Dateien und für jede Datei wird eine neue Bash Shell gestartet. Diese startet ffmpeg, übergibt die gefundene Datei an ffmpeg als Input (-i). Dahinter wird die Zieldatei angegeben. Dabei ersetzen wir die Dateiendung m4a durch mp3.

Montag Nov 07, 2016

KDE Plasma Display Helligkeit (Display Brightness)

Wenn bei KDE Plasma mal wieder der Helligkeitsregler (Screen / Display brightness) versagt und genau nichts macht (was bei mir unter Archlinux ab und an passiert) und man auf das nächste Update wartet, kann man sich der weilen so behelfen, das man die Hintergrundbeleuchtung per Kommandozeile einstellt. Z.B.:

echo 700 > /sys/class/backlight/gmux_backlight/brightness

In meinem Fall steht hier gmux_backlight (MacBook Pro, der unter Linux läuft). Bei anderen muss man unter /sys/class/backlight/ einfach schauen, welche Backlights angezeigt werden (z.B. intel_backlight). Den aktuellen Wert kann man sich mit cat /sys/class/backlight/*/brightness ausgeben lassen. Für das gmux_backlight war der Wert bei mir bei 1023. Am Besten geht man in 100erter Schritten nach unten bis man die gewünschte Helligkeit eingestellt hat.

Donnerstag Nov 03, 2016

Website jetzt mit über HTTPS erreichbar

Hat ne Weile gedauert, aber jetzt ist tauceti.net endlich nur noch über eine sichere https-Verbindung erreichbar. Verwendet habe ich ein kostenloses Let's Encrypt Zertifikat. Das Ganze kann man mit Hilfe von Certbot relativ einfach einrichten. Einfach Webserver (z.B. nginx, Apache, ...) und Betriebssystem auswählen und schon bekommt man entsprechende Informationen, was man es einrichten muss. Entweder ziemlich automatisiert (hier sind nur ein paar Handgriffe notwendig) oder mit ein bisschen mehr Handarbeit, aber dafür mehr Eingriffsmöglichkeiten während der Einrichtung.

Die Zertifkate sind jeweils 3 Monate gültig und man richtet sich am Besten einen Cronjob o.ä. ein, der dann automatisiert ein neues Zertifikat einrichtet, bevor das Alte abläuft.

Donnerstag Okt 20, 2016

Google Storage mit s3cmd und aws cli benutzen

Wenn man s3md mit Google Cloud Storage benutzen will, muss man in dessen Konfigurationsdatei .s3cfg Folgendes anpassen:

access_key = xxx
secret_key = xxx
host_base = storage.googleapis.com
host_bucket = %(bucket).storage.googleapis.com

xxx muss man natürlich durch seine entsprechenden Keys ersetzen, die man sich über die Google Console/UI (Storage -> Settings -> Interoperability) erstellen kann (nachdem man den interoperable access aktiviert hat natürlich). Diese Keys sind pro Projektmitglied und nicht pro Projekt (also jeder hat seinen eigenen Key).

Bei der AWS CLI (aws Kommando) konnte ich die Einstellungen in .aws/config irgendwie nicht nutzen.  Hier half nur die Keys als Env. Variable zu setzen und den Endpoint zu ändern:

export AWS_ACCESS_KEY_ID=xxx
export AWS_SECRET_ACCESS_KEY=xxx
aws s3 --endpoint-url https://storage.googleapis.com ls

Auch hier natürlich xxx entsprechend ändern.

Dienstag Okt 11, 2016

How it feels to learn JavaScript in 2016

Ein wirklich lustiger Artikel über JavaScript Frontend-Entwicklung.

Donnerstag Mrz 24, 2016

nc (netcat) als primitiver Portscanner

Wenn man kurz mal wissen möchte, ob z.B. eine Portrange offen ist, geht das recht flott mit nc (netcat) z.B.: 

nc -w 2 -zv 10.0.0.1 30000-30003

Connection to 10.0.0.1 30000 port [tcp/*] succeeded!
Connection to 
10.0.0.1 30001 port [tcp/*] succeeded!
Connection to 
10.0.0.1 30002 port [tcp/*] succeeded!
Connection to 
10.0.0.1
 30003 port [tcp/*] succeeded!

Mit -w geben wir ein Timeout von 2 Sek. an, damit wir nicht so lange warten müssen. -z prüft, ob der Port offen ist, -v macht nc etwas gesprächiger und hinten gibt man dann noch die IP und die Port(s) an.

Läuft Docker Container im privilegierten Modus?

Wie findet man raus, ob ein Docker Container im privilegierten Modus läuft?

docker inspect --format='{{.HostConfig.Privileged}}' <container id>

Dienstag Mrz 01, 2016

PID eines Prozesses auf dem Docker Host einem Docker Container zuordnen

Wenn man auf einem Server Docker am Laufen hat, sieht man vielleicht mal Prozesse auf diesem Host mit top, ps o.ä. mit hoher CPU-Belastung. Nun möchte man wissen, in welchem Container dieser Prozess läuft. Das findet man mit folgendem Kommando raus.

sudo docker ps -q | sudo xargs docker inspect --format '{{.State.Pid}}, {{.Id}}'

Die erste Spalte zeigt die PID an und dahinter die Container ID.

Dienstag Sep 08, 2015

Ersatz für KDE Quadkonsole

Bei KDE 4 hatte ich immer u.a. die KDE App Quadkonsole im Einsatz. Wird aber leider schon länger nicht mehr weiterentwickelt und unter Archlinux mit KDE Plasma 5 klappte das mit selber kompilieren auch nicht so wirklich. Als Ersatz habe ich Terminator gefunden, eine Konsole mit der man das Konsolenfenster in mehrere Teile splitten kann.

Montag Aug 31, 2015

Audex - KDE CD Ripper

Ein wirklich gutes Programm zum CD rippen unter KDE ist Audex. Alles Mögliche lässt sich einfach und praktisch über die GUI einstellen inkl. der Dateinamen usw. Ziemlich durchdacht.

Samstag Aug 08, 2015

Wo ist mein Speicherplatz hin?

cd /in/ein/verzeichnis
du -h . | grep -P '^[0-9\.]+G

Alternativ das Tool ncdu installieren...

Gentoo - Alle installierten Pakete auflisten

equery list "*"

Muguet - DNS Server & Reverse Proxy für Docker

Muguet ist ein DNS Server & Reverse Proxy für Docker, der automatisch generierte Hostnamen zu Conainter IPs auflöst. Außerdem enthält Muguet einen Reverse Proxy, der den Zugriff auf Web-Apps in den Container auf Port 80 ermöglicht.

TauCharts

Wem andere JS-Chart-Libs zu kompliziert sind, hat mit TauCharts vielleicht mehr Glück. Hier geht es weniger um noch mehr "fancy" Effekte, sondern mehr um die Daten und wie man sie möglichst schnell und unkompliziert darstellen kann.

Freitag Aug 07, 2015

QuantumUI

QuantumUI sind UI Komponenten, die nativ auf AngularJS und Bootstrap CSS basieren.