Privates Blog von Christian Münch

Mausrad beschleunigen

Cover Image

Das scrollen bei meiner Maus war zu langsam. Da bin ich über das Arch Wiki auf imwheel gestoßen.

Mit dem kleinen Programm kann man Tasten und virtuelle Tasten wie das Mausrad für verschiedene geöffnete Programme unterschiedlich einstellen. Man kann z.B. im Browser eine andere Geschwindigkeit einstellen wir für den Datei-Manager.

Ich habe erstmal alles gleich eingestellt. Das Progamm kann über systemd auf Benutzerebene beim Login gestartet werden.

Meine ~/.config/systemd/user/imwheel.service sieht wie folgt aus:

Die Technik hinter der Wormatia Homepage (5. Generation)

Cover Image

Seit gestern ist die neue Wormatia Homepage live. Zusammen mit meinem Wormatia Vereinskameraden Christian Bub haben wir es geschafft mit zwei Leuten die Vereinswebseite komplett zu überarbeiten. Das ganze hat natürlich eine Weile gedauert. Die offzielle Meldung findet ihr hier: https://www.wormatia.de/willkommen-auf-der-neuen-homepage/

Ich will hier aber etwas mehr auf die Technik eingehen…

TYPO3 Historie

Ein paar Fakten. Die alte Webseite lief mit TYPO3 in der Version 4.5. Ja ich weiss, dass ist bereits veraltet. Damals hatten wir uns für eine spezielle Template-Lösung TemplaVoila entschieden. Gegen die Lösung gab es auch nichts auszusetzen. Allerdings wurde in TYPO3 viel geschaubt und es entstand eine neue integrierte Lösung und der Entwickler hinter TemplaVoila stellte seine Unterstützung für die Eweiterung ein.

GIT Fehler finden

Cover Image

Vor kurzem hatte ich das Problem, dass ein `git push` zu einem Remote-Repository nicht funktionierte.

Es wurde nur folgende Fehlermeldung ausgegeben:

fatal: git fetch-pack: expected ACK/NAK, got '??                                                                                ?
 *** Server encountered a fatal error handling the push: Protocol got unexpected flush-pkt'

Da die Ursache für dies Fehlermeldung alles mögliche sein kann, wäre es gut, wenn man mehr Information erhalten könnte.

Glücklicherweise gibt es die folgenden Umgebungsvariablen die man setzen kann.

Docker Stats

Cover Image

Gerade habe ich einen neuen Container in ein Kundenprojekt eingebaut. Aus Interesse wollte ich wissen wie viel Ressourcen durch den neuen Container im Projekt belegt werden. Genauer wollte ich wissen wie viel Arbeitsspeicher verbraucht wird. Da bin ich über das nützliche Kommando docker stats gestolpert.

docker stats

Das verhält sich ähnlich wie das bekannte Tool top. Die Anzeige aktualisiert sich alle paar Sekunden. Man kann die Anzeige auch auf einzelne Container eingrenzen.

Wie erstellt man ein Paket für Arch Linux?

Cover Image

Ich arbeite seit einiger Zeit mit Arch Linux und bin damit super zufrieden. Arch kommt mit einem Paketsystem, welches aus verschiedenen Repositories besteht.

Einen guten Überblick erhaltet ihr auf der folgenden Seite:

https://wiki.archlinux.org/index.php/Official_repositories

In diesem Artikel geht es um Pakete die man im sogenannten AUR (Arch User Repository) veröffentlichen kann. Man kann dort keine Binär-Pakete veröffentlichen. Es wird immer Quellcode veröffentlicht, der dann über ein Build-Script zur Anwendung gebaut wird.

Benutzer können für ein Paket stimmen. Sind genügend Stimmen zusammen, dann kann das Paket in das “Community” Repository überführt werden, welches dann auch bereits erstellte Anwendungen beinhalten darf. Das ist sowas wie ein Trusted-Network.

Keybindings herausfinden

Cover Image

Je nach genutztem Terminal Emulator kann es sein, dass die Keybindings etwas abweichen.

Um herauszufinden welche Taste welchen Code hat kann das Tool cat verwendet werden.

Einfach “cat” eingeben und dann die entsprechende Taste drücken. In meinem Fall wollte ich die Tasten “pos1/home” und “ende/end” dazu nutzen, dass in meinem Terminal der Cursor an den Anfang bzw. Ende der Zeile springt.
Das Tool cat gab mir für Home den Code ^[[H und für Ende ^[[F aus.

zsh Startup Benchmark

Cover Image

Seit einiger Zeit nervt es mich, dass mein ZSH Shell sich gefühlt sehr träge öffnet. Heute habe ich mich endlich an den Rechner gesetzt und versucht das ganze etwaszu beschleunigen. Aber was soll ich denn beschleunigen?

Nach kurzer Recherche habe ich herausgefunden, dass es einen eingebauten Profiler in der ZSH gibt. Diesen kann am aktivieren indem man in der ersten Zeile der ~/.zshrc folgendes einträgt:

zmodload zsh/zprof

Danach wird beim Starten einer neuen Shell alle Befehle und der deren Laufzeit im Hintergrund aufgezeichnet. Ein Protokoll kann man erhalten indem man den Befehl zprof aufruft. Am besten startet man eine neuen Shell und beendet diese direkt wieder. Die Gesamtlaufzeit lässt sich zusätzlich mit dem netten time Befehl ermitteln.

Auf Docker Container aus einem anderen Netzwerk zugreifen

Cover Image

Ich arbeite seit ein paar Monaten mit ddev. Das ist ein Tool um schnell PHP Entwicklungsumgebungen in Docker-Containern zu starten. Das Tool nutzt docker-compose im Hintergrund.

Zwecks einer Demo musste ich jetzt Node-RED hochfahren. Dabei handelt es sich um eine Software die in NodeJS geschrieben wurde. Da ddev für PHP Umgebungen ausgelegt ist. habe ich die Software schnell über eine selbstgeschriebene docker-compose.yml hochgefahren.

Auf den ersten Blick lief alles super bis ich merkte, dass die Container sich nicht sehen!

GIT difftool

Cover Image

Da ich zur Zeit viel von Zuhause arbeite habe ich angefangen mein lokales Setup ein wenig zu optimieren um das tägliche Arbeiten bequemer zu haben. Dazu gehören auch die Kommandozeilen-Tools die ich täglich nutzen. GIT ist eines davon.

Was mich immer genervt hatte war, dass die Ansicht zum Vergleichen nicht ganz optimal war.

Glücklicherweise kommt GIT nicht nur mit einem diff Befehl sondern auch mit dem “difftool” Befehl der es ermöglicht ein externes Diff-Tool einzubinden. Da ich die Arbeit auf der Konsole bevorzuge habe ich das Tool icdiff eingebunden.

Arch Linux - Automatisches Update

Cover Image

Ich betreibe seit einigen Monaten meine Linux Workstation und einen kleinen Intel NUC Server mit Arch Linux. Arch Linux ist ein sogenannte Rolling Release Distribution. Das bedeutet, dass es keine klassische Veröffentlichungen z.B. jedes halbe Jahr gibt. Aktualisierungen werden relativ zeitnah ausgerollt und stehen zur Verfügung. Interessanterweise geht dabei relativ wenig kaputt. In der gesamten Zeit in der ich Arch Linux betreibe ist bei mir einmal das System nicht hochgefahren da es einen kleinen Bug im Paket LVM gab. Das konnte ich mit einem Downgrade des Pakets in einem über USB-Stick hochgefahrenen System leicht wieder beheben. Das zweite Problem war nach dem Update meines Nvidia Treibers. Es gab dann Sound-Probleme, wenn man den Ton über das Display-Port-Kabel übertrug. Alles in allem relativ schmerzfrei. Auf der anderen Seite erhält man aber auch sehr schnell Fehlerkorrekturen und neue Funktionen oder einen neuen Linux-Kernel.