Realitätsabgleich mit Alan Moore

In solchen Zeiten sollte man sich doch vielleicht auf die Künstler verlassen die eh groß darin waren, und immer noch sind, die Dystopien des letzten Jahrhunderts aufrecht zu halten. Einer dieser Autoren ist Alan Moore. Arte hat nun eine kleine Doku-Reihe über ihn und die Themen dieser Zeit gedreht.

Die Folge über die aktuell fehlende Kultur und Gegenkultur sorgte sogar zu einer heimische, hitzigen Debatte ab wann Kultur überhaupt als Wert, der in der Epoche erhalten wird, erkannt wird und dies aktuell gar keine Aussage über jetzige Zeit zuläßt. Alles nur Vermutungen.

Greta Gerwig's Lady Bird

Ladybird

Jemand sagte mir, nur einige Tage her, dass es schwer sei die Filme mit Greta Gerwig aus einander zu halten. Was in vielen Fällen nicht so nett gemeint ist, macht das Schaffen von Greta Gerwig nur noch besser. Sei es als Schauspielern, als Schauspielern ihrer eigenen Filme oder nur als Re­gis­sein und Drehbuchautorin. Ok, im letzten Fall warte ich noch auf eine Bestätigung meiner steilen These. Dies wird der Film "Lady Bird" nicht enttäuschen. Dies bilde ich mir zumindestens ein, nach dem gesehenen Trailer.

Wie kommt es eigentlich, dass es oft so einfach scheint sich mit Heranwachsenen zu identifizieren. Es sind vielleicht die Probleme die man selber gefühlt hat, heute noch immer, als Schatten, fühlt und nun vielleicht sogar andere Lösungen und Wege vor Augen hätte. Nun ist es egal... man ist erwachsen und weint den Emotionen von damals hinterher.

Linux Audio an UPNP und Chromecast

Ich sitze krank zuhause. Was stellt man an? Der Kopf brummt und das so laut und intensiv, dass man am besten, natürlich kontraproduktiv, an seinem Linux-Audio-Setup rumschraubt. Oder ist dies der Grund für mein Unbehagen? Was kann denn da schon schiefgehen? Ich starte mal mit einem kleinen Schaubild meines Setups.

                                                +------------------------+
                                                |                        |
                                                |                        |
+----------------------+                   +----v-----+                  |
|  firefox/mpv/...     |                   |          |                  |
|  through pulseaudio  |         +---------+  client  +------------+     |
+------------+---------+         |         |          |            |     |
             +                   |         +----------+            |     |
         streaming           streaming                             |     |
             +                   |                                 |     |
   +---------v---------+         |                                 +     |
   |                   |   +-----v------+                       control  |
   |  pulseaudio+dlna  +--->  upmpdcli  |                          +     |
   |                   |   +-----+------+                          |     |
   +-------------------+         |                                 |     |
                             streaming     +----------+            |     |
                                 |         |          |            |     |
                                 +--------->  mopidy  <------------+     |
       +------------------+            +--->          |                  |
       |      sources     |            |   +----+-----+                  |
       |(emby/youtube/...)+-streaming--+        |                        |
       +------------------+                +----v-----+                  |
                                           | snapcast |                  |
                                           +----+-----+                  |
                                                +                        |
                  +------------------+      streaming                    |
                  |                  |          +------------------------+
                  |   snapclient on  |          |
                  |   raspberry pi   <----------+
                  |                  |          |
                  +------------------+          |     +--------------+
                                                +-----> more         |
                                                      | snapclients  |
                                                      +--------------+

Im Endeffekt ist die Schaltzentrale mopidy mit seiner Möglichkeit Audio aus mehreren Sourcen entgegen zu nehmen und sie auch auf verschiedenste Möglichkeiten wieder auszugeben. Der Grundgedanke mit mopidy war wohl: ein Server der über das Netzwerk Lieder entgegennimmt und sie dann über, die an dem Server angeschlossenen, Lautsprecher abspielt. Nun sind wir im großen Streaming-Zeitalter und wieso sollte ich für jeden Raum den ich bespielen möchte einen mopidy-Dienst betreiben? Also schiebt mopidy seinen Output in einen snapcast-Server, der dann von vielen Clients angefragt werden kann und das Audio versucht, synchronisiert, abzuspielen. Daran können viele Clients sich ihr Audio abholen. Ich habe einen Raspberry Pi im Wohnzimmer an meine Stereoanlage angeschlossen auf dem ein snapcast-Client läuft. Zusätzlich nutze ich die snapcast-App auf meinem Telefon an dem ich Aktivlautsprecher anschließe und diese in der Küche betreibe. Funktioniert sehr gut. Sogar über VPN nutze ich snapcast. So kann ich per mopidy mir Lieder auswählen, aus egal welchen Quellen, und sie dann einfach abspielen, egal wo ich bin. Eine Komponente ist upmpdcli. Damit läßt sich mopidy durch MPD-Clients steuern. Der Clou: Man kann sogar per UPNP Tracks durch upmpdcli zu mopidy durchreichen. Dies funktioniert nicht immer perfekt aber immer wieder überraschend gut. Nun fing ich an zu googeln. Es wäre natürlich am schönsten, wenn ich so auch Inhalte meines Laptops in mein Audio-Setup geben könnte. Und natürlich gab es da etwas: pulseaudio-dlna! Und wer hätte das denken können: ich bin mittlerweile voll auf dem Pulseaudio-Zug, begeistert, aufgesprungen. Hat ja nur wie lange gedauert? Zehn Jahre? Damals wurde es zu dem Standard in Ubuntu und alles was es konnte war, dass es keinen Sound mehr gab. Zumindestens auf meinem System. Nun nutze ich es gerne für genau solche Setups. Man started pulseaudio-dlna und öffnet pavucontrol. Spielt nun ein Programm Audio ab, kann man es über einen UPNP-Renderer (in meinem Fall upmpdcli + mopidy) ausgeben lassen oder sogar über einen Chromecast.

Übrigens versuche ich die meiste Software für Alpine Linux zu Verfügung zu stellen, wenn es sie nicht schon gibt. Ich versuche all meine Docker-Images auf Alpine basieren zu lassen. So kommt alles aus einem Guss und ich kann auch noch ein wenig diese tolle Distro unterstützen.

Mein ganzes Setup ist in Docker gegossen. Alles dazu findet man hier.

Scannen in Docker, in klicki und bunti

Schon seit der Entdeckung der analogen Fotografie für mich, entwickel ich die schwarz-weiß Negative selber und scanne sie dann mit meinem Epson 4490. Den hatte ich mir damals gekauft, da er einerseits bei Media-Markt verfügbar bar und auch 120er Rollfilm scannen konnte. Zu der Zeit entdeckte ich meine Liebe für die Holga Kamera. Die Halter für die Filme sind eher ein wenig wackelig und ich hatte am Anfang Probleme das das Negativ das Glas des Scanner berührte und es zu Newton Ringen kam. Alles nicht so professionell aber machbar. Zu der Zeit nutze ich einen Mac Mini und war froh das es die Epson Software auch für diesen gab. Später war ich wieder zurück auf Linux und nutze Virtualbox und ein altes Windows XP um die Epson Windows Software zum laufen zu bringen. Letztes Jahr, nach dem Umzug, war mein Setup noch nicht ganz aufgebaut und ich musste ein paar Negative scannen. Ich kaufte mir VueScan. Dies soll sowas wie der heilige Gral des Scannens sein. Die Software ist unter anderem von einem NASA Mitarbeiter programmiert und kommt mit vielen Treibern. Gerade wenn es für aktuelle Betriebssysteme keine mehr gibt, ein Segen. In meinem Fall, Epson 4490 mit VueScan unter Linux, musste ich noch einen Epson Treiber installieren. Ich weiß nicht wie ihr das seht, aber mir dreht sich alles um wenn ich als root eine install.sh ausführen soll die irgendwelchen Kram in mein System kopiert, welches ich im schlechtesten Fall per Hand wieder rauspopeln muss. Sowas wollte ich nicht mehr. Docker und X11 hatte ich bis jetzt nicht wirklich benutzt, sah darin aber den perfekten Usecase.

FROM ubuntu:xenial

ENV GOSU_VERSION 1.10

RUN set -ex \
 && apt-get update \
 && apt-get install -y \
        ca-certificates \
        wget \
 && cd /tmp \
 && wget https://download2.ebz.epson.net/iscan/plugin/gt-x750/deb/x64/iscan-gt-x750-bundle-1.0.0.x64.deb.tar.gz \
 && tar xvfz iscan-gt-x750-bundle-1.0.0.x64.deb.tar.gz \
 && iscan-gt-x750-bundle-1.0.0.x64.deb/install.sh \
 && wget https://www.hamrick.com/files/vuex6495.tgz \
 && tar xvfz vuex6495.tgz \
 && cp VueScan/* /usr/local/bin/ \
 && rm -rf /tmp/* \
 && rm -rf /var/lib/apt/lists/* \
 && cd /

COPY entrypoint.sh /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]
CMD ["vuescan"]

Dieses Dockerfile macht nichts anderes als die Treiber von Epson herunter zu laden und zu installieren. Das gleiche gilt für VueScan. Ich habe mich aus Feigheit für ein Ubuntu Docker Image entschieden. Dies ist am nächsten zum den System auf dem ich es laufen lassen will.

#!/bin/sh

set -e

if [ "$1" = "vuescan" ];then

        echo "---> starting vuescan"
        vuescan

        echo "---> fix permissions"
        chown -R $USERID:$GROUPID /root/Scan
        chown -R $USERID:$GROUPID /root/.vuescan
        chown $USERID:$GROUPID /root/.vuescanrc
        exit

fi

exec "$@"

Hier komme ich schon zu dem einen Problem was ich hatte. Es war mir nicht möglich den USB Scanner mit einem anderen Benutzer im Container zu benutzen. Vielleicht finde ich ja nicht einen richtigen Hinweis. So trickse ich weiter rum und fixe die lokalen Permissions wenn ich VueScan beende.

Ich lege mir immer gerne Makefiles an. So muss ich nicht erstmal schauen wie ich die Sachen richtig schreibe oder mit welchen wilden Optionen ich den Container starte.

PHONY.: build run

USERID=$(shell id -u)
GROUPID=$(shell id -g)

build:
    docker build -t vuescan .

run:
    xhost +local:
    touch /home/$(USER)/.vuescanrc
    docker run --rm -ti --privileged -e USERID=$(USERID) -e GROUPID=$(GROUPID) -e DISPLAY=$(DISPLAY) -e XAUTHORITY=$(HOME)/.Xauthority -v /tmp/.X11-unix:/tmp/.X11-unix -v /home/$(USER)/Nextcloud/Scan:/root/Scan -v /home/$(USER)/.vuescan:/root/.vuescan -v /home/$(USER)/.vuescanrc:/root/.vuescanrc -v /dev/bus/usb:/dev/bus/usb vuescan

Ich übergebe dem Container die User-ID und Gruppen-ID damit ich Permissions fixen kann. Dazu kommt --privileged. Dies ist nötig um direkten Zugriff auf den USB-Bus des Host Systems zu haben. -e DISPLAY=$(DISPLAY), -e XAUTHORITY=$(HOME)/.Xauthority und -v /tmp/.X11-unix:/tmp/.X11-unix sind nötig um auf den Xserver zu zugreifen. Wichtig dafür auch das xhost +local: im Makefile. Alle anderen Volumes sind VueScan config-Verzeichnisse und das super wichtige /dev/bus/usb, der direkte Zugriff auf den USB-Bus.

Ein wenig gefrickel... aber am Ende ging es.

Die Jawbreaker Dokumentation "Dont break down"

dont break down

Es kommt wohl bald eine Dokumentation zu Jawbreaker. Eine Band die ich immer wieder und sehr gerne höre. Sie spielen ja bald ein paar Reunion Shows. Na mal schauen...

(via)