seeseekey.net - Invictus Deus Ex Machina

Vor ein paar Tagen wurde Raspbian, die Debian-Distribution für den Raspberry Pi, auf das neue Release mit dem Namen Stretch aktualisiert. Debian benennt seine Releases nach Figuren aus dem Toy Story Universum. Nach dem Cowgirl Jessi, folgt nun der Octopus Stretch, Um bestehende Installationen, welche noch mit der älteren Version laufen, zu aktualisieren, sollte man sich per SSH mit dem entsprechenden Raspberry Pi verbinden. Dort gibt man dann folgendes ein:

apt-get update
apt-get dist-upgrade

Damit wird die bestehende Version (Jessi) auf die aktuelle Version aktualisiert. Im nächsten Schritt müssen die Paketquellen angepasst werden. Dazu muss die sources.list-Datei in einem Editor geöffnet werden:

nano /etc/apt/sources.list

Die Datei sieht dabei im Normalfall wie folgt aus:

deb http://mirrordirector.raspbian.org/raspbian/ jessi main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi

Die Zeichenkette jessi muss nun durch stretch ausgetauscht werden. Das gleiche gilt für Dateien die im Ordner /etc/apt/sources.list.d/ liegen. Anschließend müssen die Pakete auf die neue Version (Stretch) aktualisiert werden:

apt-get update
apt-get dist-upgrade

Je nach Anzahl der installierten Pakete, kann dieser Vorgang durchaus einige Stunden in Anspruch nehmen. Unter Umständen wird gefragt, ob bestimmte Konfigurationsdateien überschrieben oder behalten werden sollen. Hier sollte man je nach Fall abwägen. Bei Konfigurationen, die manuell angepasst worden sind, kann ein Überschreiben derselben zu Problemen führen, da die Dienste dann eventuell nicht mehr so laufen wie ursprünglich gewünscht. Wenn der Vorgang abgeschlossen ist, sollten noch einige Aufräumarbeiten angestartet werden:

apt-get autoremove
apt-get autoclean

Anschließend kann der Raspberry Pi mittels des Befehls reboot neugestartet werden.

Wenn man ein Image auf eine SD-Karte oder einen USB-Stick übertragen möchte, so kann man, je nach verendetem System, die Kommandozeile nutzen um das Image auf den Datenträger zu schreiben. Mit Hilfe des Cross-Plattform-Tools Etcher kann man diese Aufgabe unkomplizierter erledigen. In Etcher muss das Image und der Datenträger definiert werden und schon startet der Prozess. Das Tool wird unter anderem von der Raspberry Pi Foundation empfohlen.

Etcher

Heruntergeladen werden kann Etcher auf der Seite des Projektes unter etcher.io. Es ist für macOS, Linux und Windows verfügbar. Der Quelltext des Werkzeuges ist auf GitHub zu finden. Das Projekt ist unter der Apache 2.0 Licence lizenziert und damit freie Software.

Vor kurzer Zeit stand ich vor dem Problem, dass eine Taste auf der Tastatur eines MacBook nicht mehr funktionierte. Nun tippt es sich ohne das komplette Alphabet bekanntermaßen etwas schwierig. Wenn die Taste nicht mehr repariert werden kann, muss eine andere Lösung in Erwägung gezogen werden.

Die Einstellungen in Karabiner-Elements

Das Werkzeug der Wahl ist hierbei Karabiner bzw. Karabiner-Elements. Nach der Installation des Tools, kann, unter Zuhilfenahme von Karabiner-Elements, das Mapping der Tasten verändert werden. Als Ausweichtaste bietet sich die Caps Lock-Taste an. Diese verfügt im Normalfall über keinerlei sinnvolle Funktionalität. Der Quelltext der beiden Karabiner-Versionen ist auf GitHub zu finden. Lizenziert sind die Werkzeuge als Public Domain und damit für jedermann frei verfügbar.

Für den Raspberry Pi gibt es eine Reihe von Distribution, welche die unterschiedlichsten Themengebiete, vom Konsolen-Linux zur grafischen Oberfläche, bis hin zu Spezialanwendungen, wie Media Center-Anwendungen, abbilden. Eine Distribution, welche sich der einfachen Emulation verschrieben hat ist RecalBox. Ziel der Distribution ist die Bereitstellung eines Paketes mit welchem man sofort starten kann. Dabei wird eine große Anzahl von Systemen vom NES, SNES und weiteren Nintendo-Konsolen, bis zu SEGA-Konsolen und weiteren Systemen unterstützt. Insgesamt enthält Recalbox eine Unterstützung für über 40 Systeme. Für die Installation reicht es aus, die Installationsdateien auf eine entsprechende SD-Karte zu kopieren und diese in den Raspberry Pi einzulegen. Anschließend startet eine NOOBS-Installation und danach kann die Recalbox genutzt werden.

Das EmulationStation-Frontend

Bluetooth-Controller werden, ein externes Bluetooth-Dongle vorausgesetzt, beim Start erkannt und können anschließend einfach konfiguriert werden. Die aktuelle Version der Recalbox trägt die Versionsnummer 4.0.2 und hat in Verbindung mit dem Raspberry Pi 3 ein kleines Problem; das interne Bluetooth-Modul wird nicht unterstützt. Dies wird erst mit Version 4.1 geschehen, allerdings ist der Release-Termin dieser Version noch nicht festgelegt. Auf der GitHub-Seite des Projektes findet sich dazu die Anzeige der entsprechenden Punkte welche vor dem Release noch erledigt werden sollen. Für die Nutzung der aktuellen Version benötigt man damit zwangsläufig einen externen Bluetooth-Dongle.

Für das Frontend zur Auswahl der Spiele und der entsprechenden Konsole wird EmulationStation genutzt. Als eigentliches Emulator-Frontend wird RetroArch genutzt. Der jeweils konkrete Emulatorkern, kann über die EmulationStation-Einstellungen konfiguriert werden. Zur Verwaltung der ROMs und der Recalbox-Konfiguration wird eine Weboberfläche bereitgestellt. Standardmäßig ist diese unter der URL:

http://recalbox.local

erreichbar. Im Recalbox Web Manager können ROMs per Drag & Drop hochgeleaden werden, das System überwacht und die Konfiguration angepasst werden. Auf dem Host recalbox.local läuft daneben ein SSH-Dienst mit welchem sich über das Terminal verbunden werden kann:

ssh root@recalbox.local

Das Standardpasswort für den root-Account lautet recalboxroot. Der Quelltext der unterschiedlichen Subprojekte der Recalbox sind auf GitHub zu finden. Im Großen und Ganzen funktioniert Recalbox als Lösung Out of the Box sehr gut. Zu finden ist Recalbox unter recalbox.com.

Um eine gute Lesbarkeit auf einer Webseite zu erreichen, ist es wichtig ein sinnvolles Kontrastverhältnis zwischen Hintergrund und Schrift zu wählen. Ist dieses Verhältnis zu schlecht, leidet die Lesbarkeit der Texte. Große Webkonzerne wie Google und Apple gehen hierbei teilweise mit schlechtem Beispiel voran.

leaverou.github.io/contrast-ratio/

Nach der WCAG 2.0 Richtlinie wird im Normalfall ein Kontrastverhältnis von mindestens 4,5:1 gefordert. Ob die eigene Webseite diesem Kontrastverhältnis entspricht, kann man mit dem contrast ratio Tool testen, welches auf GitHub unter leaverou.github.io/contrast-ratio/ zu finden ist. Der Quelltext, der unter der MIT-Lizenz lizenzierten Software, ist ebenfalls auf GitHub zu finden.

JOSM ist ein freier Editor für OpenStreetMap. Mit Hilfe des Editors können OpenStreetMap-Daten problemlos editiert werden. Als Referenz lassen sich dabei unter anderem GPS-Tracks in Form von GPX-Dateien hinterlegen. Standardmäßig kann man diese allerdings nicht bearbeiten.

editgpx in der Plugin-Verwaltung von JOSM

Hierzu muss über die Einstellungen erst das Plugin editgpx installiert werden. Nachdem dies geschehen ist, kann ein GPX-Track geladen werden. Damit dieser nun bearbeitet werden kann, muss im Ebenen-Fenster das Kontextmenü für die GPX-Ebene aufgerufen werden. Dort wählt man den Punkt Zur Daten-Ebene konvertieren. Anschließend können die GPX-Daten bearbeitet werden.

Mittlerweile gibt es unzählige sogenannte Social Icons für Dienste wie Facebook, GitHub oder Twitter. In vielen Fällen benötigt man ein solches Social Icon auf einer Webseite oder in einem Dokument. Natürlich kann man sich nun die entsprechenden Bilder bei den jeweiligen Anbietern, über die Presse- bzw. Markenportale beziehen. Bei mehreren Anbietern kann dies allerdings eine zeitintensive Tätigkeit sein.

Der Font Socicon in Aktion

Mit dem Font Socicon, welcher unter socicon.com bezogen werden kann, hat man alle diese Social Icons in einem Font zusammengefasst. Dieser kann direkt auf Webseiten eingebunden oder lokal installiert werden. Lizenziert ist der Font unter der SIL Open Font License 1.1.

Wenn man den Podlove Subscribe Button über das Podlove Podcast Publisher-Plugin benutzt, so wird man feststellen das dieser über das Podlove-CDN eingebunden wird.

Podlove Subscribe button
Preis: Kostenlos
Podlove Podcast Publisher
Preis: Kostenlos

Wer keine externen Abhängigkeiten einbinden möchte, der kann seit Version 2.6 des Podlove Podcast Publisher-Plugins die CDN-Nutzung deaktivieren.

In den Modul-Einstellungen kann die CDN-Nutzung deaktiviert werden

Dazu müssen im Podlove-Menü im WordPress-Backend, die Moduleinstellungen aufgerufen werden. Dort findet sich unter dem Unterpunkt Web Publishing die entsprechende Einstellung um die CDN-Einbindung zu deaktivieren.

Gogs ist ein Git-Service welcher eine ähnliche Funktionalität wie der bekannte Dienst GitHub zur Verfügung stellt. Standardmäßig läuft der Dienst auf dem Port 3000. Möchte man ihn über die normalen Ports für HTTP (80) bzw. HTTPS (443) erreichbar machen, kann man hierfür einen Reverse Proxy nutzen. Dafür eignen würde sich zum Beispiel Nginx, der im ersten Schritt auf dem Server installiert werden muss:

apt-get install nginx

Anschließend wird die Konfiguration angelegt:

nano /etc/nginx/sites-available/example

In diesem Fall befasst sich die Konfiguration mit der verschlüsselten Kommunikation per HTTPS und der Weiterleitung von unverschlüsselten Verbindung in Richtung der verschlüsselten Verbindung.

server {
        listen 80;
        listen [::]:80;

        server_name example.com;

        return 301 https://$host$request_uri$is_args$args;
}

server {
    listen 443;
    listen [::]:443 default_server;

    ssl on;
    ssl_certificate        /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key    /etc/letsencrypt/live/example.com/privkey.pem;

    server_name example.com;

    client_max_body_size 500m;

    location / {
        proxy_pass https://localhost:3000;
    }
}

Nachdem die Konfiguration für Nginx hinterlegt ist, wird die Standardkonfiguration entfernt und ein symbolischer Link für die neue Konfiguration erstellt. Anschließend wird Nginx neugestartet, damit die geänderte Konfiguration wirksam wird:

rm /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/example
service nginx restart

Nach der Anpassung der Nginx-Konfiguration, muss die app.ini (sie befindet sich im gogs/custom/conf/ Ordner) von Gogs angepasst werden und dort die neue ROOT_URL ohne zusätzlichen Port angegeben werden. Anschließend kann auf Wunsch, per Firewall, der Port 3000 für Zugriffe von außen gesperrt werden.

Einführung in die uncomplicated firewall

Wenn man einen eigenen Server betreibt und die mail()-Funktion von PHP benutzen möchte, so benötigt man auf dem Server einen Mail Transfer Agent kurz MTA. Über diesen MTA versucht die mail()-Funktion ihre Mails zu versenden. Ist kein MTA auf dem System installiert, schlägt der Versand von Mails fehlt. Nun ist es bei vielen Servern nicht gewünscht, einen vollwertigen MTA zu installieren. Abhilfe schafft hier der Nullmailer welcher mittels:

apt get install nullmailer

installiert werden kann. Nullmailer leitet die Mails, an einen Mailserver der Wahl weiter. Dazu muss er konfiguriert werden:

nano /etc/nullmailer/remotes

In dieser Datei wird der Mailserver mit seiner Konfiguration eingestellt:

mail.example.com smtp --port=587 --starttls --user=nutzername --pass=geheim

Nutzt man einen Mailserver mit einem selbstsignierten Zertifikat benötigt eine weitere Option:

mail.example.com smtp --port=587 --starttls --user=nutzername --pass=geheim --insecure

Anschließend sollte der Mailversand ohne Probleme funktionieren. Schlägt er trotzdem fehl, findet man genauere Informationen im Syslog unter /var/log/syslog.