Slow Movie Player: PHP controlled

Um meinen Slow Movie Player via PHP zu “steuern” (aka den Service ein- und auszuschalten erst mal nur), bedurfte es eigentlich nur einer Änderung: Ich musste dem entsprechenden User (hier: www-data) das Recht geben, den Service per systemctl zu starten und zu stoppen: $ sudo visudo, dann

Achtung: Die Zeile muss an das Ende der Datei!

Dann ist das ziemlich einfach:

Achtung: systemctl ist hier in /usr/bin, nicht in /bin!

Zwischendurch habe ich zum Debuggen

  • den User www-data zu sudo hinzugefügt: sudo usermod -aG sudo www-data (und dann aber wieder entfernt: sudo gpasswd --delete www-data sudo)
  • dem User www-data eine Shell (und ein Home-Verzeichnis und ein Passwort) zugewiesen, damit er sich einloggen kann (und dann wieder entfernt)

PS, zum Einsatz kommt PHP 8.2, mittels Umweg über sury.org.

Lauterbach

Ich bleibe dabei: Lauterbach ist die Enttäuschung der Ampel.

(Ich meine, von einem FDP-Verkehrsminister hat man immerhin nie was erwartet!)

Lasst mich erklären.

Vorab: Warum maße ich eine Meinung an, ich bin doch gar kein Arzt? Das ist richtig, aber ich bin mit einer Hausärztin einer Kleinstadt verheiratet. Und ich arbeite Teilzeit, um das zu ermöglichen, kümmere mich danach um Kinder und Haus. Insofern bin auch ich finanziell abhängig von Lauterbachs Entscheidungen, und mittelbar betroffen von dem folgenden Quatsch.

Heute morgen also lese ich diesen Artikel auf Spon. Ich gehe ihn mal der Reihe nach durch:

  1. “Lauterbach zu Ärztestreik […] Viele Arztpraxen bleiben am Montag geschlossen – aus Protest gegen die Gesundheitspolitik von Minister Karl Lauterbach” Das ist falsch. Der 2. Oktober ist seit langem als Brückentag von der Kassenärztlichen Vereinigung (“KV”) als Brückentag vorgegeben (genau wie Ende Oktober vor dem Reformationstag übrigens). In manchen Praxen wird Urlaub vorab fürs Jahr verplant, das ist alles deutlich vor der aktuellen Diskussion passiert. Heute wird protestiert, richtig! Aber explizit an einem Tag, an dem die Praxen eh zu sind! Gestreikt wird nicht.
  2. “Am Brückentag bleiben viele Praxistüren verschlossen. Unmittelbar vor einem bundesweiten Ärztestreik an diesem Montag hat Bundesgesundheitsminister Karl Lauterbach Forderungen nach mehr Geld infrage gestellt.” Siehe 1. Jetzt muss man sagen, dass ja nicht Lauterbach diesen Artikel geschrieben hat, sondern der Spiegel. Warum also denkt der Spiegel, dass das ein Streik sei? Siehe 3:
  3. Lauterbach schrub auf Twitter: “Am Brückentag schließen viele Praxen, wie die Apotheker wollen auch sie mehr Geld.” Das ist Korrelation, nicht Kausalität, aber er formuliert das natürlich bewusst irreführend. Und sie wollen als Praxis mehr Geld, bspw. um die gestiegenen Tarifgehälter der MFAs zu bezahlen, sie wollen nicht als Arzt mehr Geld.
  4. Lauterbach schrub weiterhin: “Im Mittel (Median) verdienen sie aber nach Abzug aller Kosten um die 230.000 Euro pro Jahr” Diese Zahl ist absurd. Ich sage nicht mal, dass sie falsch ist, denn das weiß ich nicht. Vielleicht ist sie falsch, das wäre natürlich krass. Außerdem schreibt er “Praxen”, nicht “Ärzte” – angesichts von 3) nehme ich an, dass auch das eine bewusste Irreführung ist. Aber mal angenommen, die Zahl stimmt, und sie wäre der mittlere Gewinn (“nach Abzug aller Kosten”) eines Arztes – das wäre dann ein Problem, allerdings ein anderes. Denn in der Praxis meiner Frau liegt der Gewinn eines Arztes bei einem Bruchteil davon, einem niedrigeren zweistelligen Prozentanteil. Wenn der Median trotzdem so hoch ist, bedeutete das ein krasses Ungleichgewicht, und das müsste man angehen, nicht “DeN bEiTrAgSsAtZ”.
  5. Lauterbach fragt: “Soll der Beitragssatz für Arbeitnehmer steigen, damit das Honorar weiter steigt?” Auch das vorsätzliche Irreführung, denn das Honorar soll primär nicht steigen, es soll nicht sinken! Letzteres ist aber der Fall. Während Lohnkosten für die MFAs steigen; Miete, Strom, etc. natürlich ebenfalls (was beides unmittelbar auf “dEn GeWiNn” der Ärzte durchschlägt!), wurde der Vergütungsschlüssel seitens der KV so geändert, dass es weniger Geld für die Praxen = die Ärzte gibt.
  6. “Tausende Haus- und Fachärzte wollen an diesem Montag aus Protest gegen die Gesundheitspolitik ihre Praxen nicht öffnen. ” siehe oben
  7. “Der Verband […] spricht von einem […] Nettoeinkommen […] von 85.555 Euro”, immer noch höher als das eines Hausarztes, aber deutlich realistischer. Übrigens, Kinderärzte liegen noch darunter.

Als Arzt hat man 13 Jahre Schule, 7 Jahre Studium (Median Humanmedizin, eben gegoogelt), 5-6 Jahre Facharztausbildung hinter sich. Kann man sich ja ausrechnen, wer das noch auf sich nimmt, um danach damit rechnen zu müssen, dass das Einkommen gekürzt wird, während man gleichzeitig so dargestellt wird. Die Anzahl an niedergelassenen Ärzten wird also weiter sinken. Wer sich heute schon über Ärztemangel beklagt: Wendet euch an Lauterbach!

Und es kommt noch ein Aspekt dazu: Besagter Vergütungsschlüssel beinhaltet nämlich einen Aspekt, um den Verdienstausfall abzufedern (nicht auszugleichen): Mehr Patienten behandeln. Masse statt Klasse. Wer sich also darüber beschwert, dass Ärzte keine Zeit mehr für den Patienten hätten: Wendet euch an Lauterbach!

Mittelfristig wird es nicht anders gehen, als MFAs einzusparen oder nach der Ausbildung nicht zu übernehmen. Wer also heute schon Probleme hat, telefonisch beim Arzt durchzukommen: Wendet euch an Lauterbach!

Denn alternativ geht es nur, wenn die Ärzte monatsweise auf Gehalt verzichten. Oder eben wirklich “zu machen”, statt einen offiziellen Brückentag wahrzunehmen. Was ja ebenfalls heute schon passiert, wenn zum Ende des Quartals das per Dekret von der KV zugestandene Geld aufgebraucht ist, wird halt für eine Woche dichtgemacht, statt für lau weiterzubehandeln. So etwas wird zunehmen.

Deshalb: So wie Volker “VW” Wissing sich eher als Auto- denn als Verkehrsminister geriert, scheint mir Lauterbach eher der Krankenkassen- als der Gesundheitsminister zu sein. Was mich nach seinem Auftreten während Corona doch immer noch enttäuscht.

Slow Movie Player: Casablanca

(Vorab: Anders als sonst linken dieses mal alle Bilder zu einer größeren Version)

Über diese News auf raspberrypi.com (und den zugehörigen Medium-Post) bin ich auf dieses Repo gestoßen (Fork). Was ich so cool fand, dass ich es nachgebaut habe, und just während ich diesen Eintrag tippe, steht meine Version vor mir und spielt Casablanca – in 1-Sek/24-Frames-Sprüngen alle 5 Minuten 🙂

Und eigentlich gibt es dazu nicht so viel zu zu sagen, das ist alles ziemlich straight forward. Ein paar Details wollte ich aber festhalten:

  • der Pi wird von hinten, das Display von vorn mit Heißkleber an die Rückwand des Rahmens geklebt
  • ergänzt wird der Rahmen um ein Passepartout und “Museumsglas” von arsvendo.de. Das Ikea-Passepartout habe ich genutzt, um das Display einzufassen (mit Aussparungen für den Heißkleber):

  • Casablanca ist natürlich eigentlich 4:3. Um mir die schwarzen Balken zu ersparen, habe ich ihn mit HandBrake und folgenden Settings gecroppt (tatsächlich habe ich auch Intro/Outro abgeschnitten, Ton/Subtitles/Kapitel weggeworfen, etc. Hier geht es nur ums Cropping, zum Rest siehe Wiki):

Und das funktioniert bildausschnittstechnisch meistens ziemlich gut:

Default value for bash script parameter

Die Verbindung von How can I pass a command line argument into a shell script? und Assigning default values to shell variables with a single command in bash sieht wie folgt aus:

Aufzurufen dann wahlweise mit oder ohne Parameter:

– klar.

Aras Felder in MS Office

Wer – wie ich – nicht so oft das Vergnügen hat, Officedokumente aus Aras heraus zu editieren, der sucht vielleicht – wie ich – etwas länger danach, Aras-Attribute in Office zu referenzieren. Spoiler: Das tut man natürlich nicht im Aras-Connector-Ribbon:

Insert > Quick Parts > Field

Field name “DocProperty” > [entsprechendes Feld auswählen]

outlook.office.com: Ausgewählte E-Mail hervorheben

outlook.office.com ist ganz ok – für Outlook-Verhältnisse, es ist natürlich trotzdem völlig sinnlos überladen. Was aber tatsächlich nervt, ist dass man schwer erkennen kann, welche Email gerade ausgewählt ist. Zeit für etwas uBlock-Magic:

In Worten: Wähle die Domain, wähle dort das DIV mit Attribut aria-selected=true, wähle davon das Unter-unter-DIV, setze dafür die linke Border auf Rot. Oder ggf. halt irgendwas anderes, zB Font auf das Default-blau:

VS Media mit eigenem CI+-Modul

Also.

Ich habe ja einen neuen Fernseher. Der alte war zum Zeitpunkt des Umstiegs knapp 12 Jahre alt und riss halt nix mehr. Aber er war (und ist) auch nicht kaputt, und zum Tagesschau gucken oder für die Youtube-Yoga-Sessions der Frau noch allemal ok. Gucken wir doch also mal, was man bei VS Media benötigt, um auf nun zwei Fernsehern TV zu gucken:

Unter “Geräte & Zubehör” heißt es unter der Überschrift “CI+ Modul für media.TV+”, Stand heute:

Dann benötigen Sie zum Empfang von media.TV+ lediglich eine freigeschaltete Smartcard und das zertifizierte CI+-Modul der VS Media.

Das Modul erhalten Sie nur bei der VS Media.

Kaufpreis 49,00 €

Hm. Das’ teuer. Was ist denn das für ein tolles Modul, dass das schon leer 50€ kostet? In den FAQ (Stand heute) heißt es:

Für die Freischaltung der Pakete von MediaTV+ benötigen Sie ein CI+-Modul mit Conax-Verschlüsselung und Chipset Pairing.

Alles klar. “Ein” Modul, nicht mehr “das” Modul. Warum sollte es sowas auch “nur bei der VS Media” für 50€ geben? Bei Ebay Kleinanzeigen gibt es sowas für’n Zehner plus Versand. Auf Nachfrage bestätigt mir technik@stadtwerke-media.de denn auch die gute Nachricht (es gibt auch eine schlechte!): Man kann sein eigenes Modul verwenden Wenn:

  • die Karte die o.g. Anforderungen hinsichtlich Verschlüsselung und Pairing erfüllt, klar
  • die Karte “auf Kompatibilität geprüft” wurde, dafür schicke man einfach die Chipset ID (steht auf der Karte) an die obige Emailadresse, die prüfen das dann
  • man eine Smartcard hat, das Modul “mit der Smartcard verknüpft” und die Smartcard freigeschaltet ist.

Letzteres deckt sich auch mit meinen Vertragsunterlagen:

Ich habe “BasisHD” mit einem Modul und einer Smartcard, und selbstverständlich brauche ich dann ein weiteres Modul und eine weitere Smartcard pro weiterem TV ‍♂️ Das Modul habe ich von Ebay, Tech-Support sagt GO, Vertrag sagt ich brauche eine Karte, also schickt mir bitte eine!

Jetzt die schlechte Nachricht: Tun sie aber nicht.

Denn was Vertrag (und auch Tech-Support, btw) galant verschweigen: Man bekommt pro Vertrag aus­schließlich das, was man angekreuzt hat. Im Fall von “BasisHD” also “1 Smartcard”. Punkt. Das Modul kann man selber haben oder nicht, aber die Karte und (in meinem Fall) “BasisHD” bilden eine un­­trenn­­bare Einheit. Der im Screenshot markierte Teil ist also nicht der technische Hinweis für Laien, als der er formuliert ist, sondern eine einschränkende Klausel! Sie müsste eigentlich lauten:

Pro TV-Gerät benötigen Sie ein CI + Modul oder einen Receiver. Bei Nutzung eines eigenen Receivers oder CI + Moduls wird eine Conaxverschlüsselung/ein Chipset-Pairing benötigt. Außerdem brauchen Sie eine Smartcard, die Sie ausschließlich bei Vertragsabschluss über eines der oben genannten Pakete bekommen. Die Smartcard bleibt Eigentum der Vereinigte Stadtwerke Media GmbH (VS Media).

Und natürlich greift dann auch alles weitere, also “Aktivierungspauschale”, Mindestvertragslaufzeit, etc. Tja. Ich hätte mir bei einem Anbieter aus dem Nachbardorf ein weniger irreführendes Gebahren gewünscht, aber offenbar kann man auch einfach bei Vodafone bleiben.

Aber: Ja, man kann (wohl) sein eigenes CI+-Modul verwenden.

Kein Ton über HDMI/ARC (an Panasonic OLED)

Ich hatte Schwierigkeiten, den Ton meines neuen Fernseher in den AV-Receiver zu bekommen:

Mein bisheriges Setup war Player→[HDMI]→Receiver↔[HDMI/ARC]↔TV, man beachte die bidirektionale Richtung zwischen Receiver und TV, das Stichwort ist hier ARC. Dadurch konnte der Receiver den Ton des Players abgreifen (und wiedergeben) und das Bild an den TV durchreichen. Der TV konnte seinen Ton (etwa beim Fernsehen) über dasselbe Kabel an den Receiver zurückgeben. Und Steuersignale wie bspw. Lautstärke ebenfalls. Das ist ziemlich super.

Das geht mit dem neuen TV nicht mehr, weil der Receiver kein 4k durchschleift 🙄. Der Player hat nun zum Glück zwei HDMI-Ausgänge, einen für Bild (geht jetzt zum TV) und einen für Audio (geht jetzt in den Receiver). Aber wie den Ton vom TV in den Receiver bekommen? Die naheliegende Antwort lautet TOSLINK aka optisches Audio. Und das ist ziemlich stuhl.

Der TOSLINK-Stecker ist maximal asymmetrisch und nur mit viel Gefummel in die Buchse zu bekommen. Die Buchse ist maximal filigran und von so einer Klappe verdeckt (sonst leuchtet’s die ganze Zeit rot). In meinem TV ist die Buchse außerdem über Kopf montiert, und so kam es, wie es kommen musste:

Das sind die Überreste meiner Buchse 😭 Nun hält das Kabel noch schlechter, also bei TOSLINK sowieso schon.

Ich begann (Erzählerstimme: “…jetzt doch schon mal …”), wieder über ARC nachzudenken. Warum sollte das nicht immer noch funktionieren? Gesagt, probiert, der TV scheint den Receiver zu finden – Lautstärkeregelung geht, und wenn ich den TV ausschalte, geht auch der Receiver aus. Nur Ton, Ton höre ich nicht. Vielleicht ein anderer HDMI-Input? Auch nicht. Und nun? TOSLINK geschrottet, ARC geht nicht. Kurz googeln, und man findet viele Foreneinträge wie diesen hier, es gibt auch weitere:

ARC ist sowas von unausgereift. Je nach TV/Receiver/Firmware funktioniert es halt nicht.

Kann ich ja fast nicht glauben, zumindest nicht in meiner Kombination hier, der Receiver ist der alte, der TV nach wie vor ein Panasonic. Zumal, ich bin erklärter ARC-Fanboy und möchte das auch bleiben 😊 So, und jetzt komme ich zum eigentlichen Aufhänger dieses Posts: Es kommt auf die korrekte HDMI-Buchse am Receiver an; es muss der HDMI-Output sein! Das ist nicht selbsterklärend, denn warum sollte ARC-Input nicht an irgendeiner Input-Buchse hängen dürfen? Aber wenn man sich das ursprüngliche Setup ansieht, wird diese Anforderung klar. Oder wenn man das Naming ansieht, ARC steht für Audio Return Channel, und ein “Return” wird es nur, wenn der eigentliche Output dann als Input verwendet wird. Gedacht, probiert, nur, wenn ich Audio-Input über den Output erwarte, auf welchen Kanal stelle ich dann meinen Receiver? Da hilft (Erzählerstimme: “…jetzt doch schon mal …”) ein Blick in die Anleitung: AV 1. Der scheint also mehrfach belegt zu sein, es gibt auch einen dedizierten AV 1-Input auf der Rückseite. Aber das soll mir egal sein.

Liebes Internet: ARC-Input an den HDMI-Output anschließen, korrekten Kanal wählen, dann klappt’s auch mit dem Nachbarn.

MicroPython vs. HTTP Response Headers

Der Raspberry Pi Pico W ist pure Magie. Ein Microcontroller, in Python zu steuern, mit WLAN on board 😍 Super einfach, damit irgendwas im Netz zu machen – essentiell für IoT, looking at you, Arduino.

(Aber man muss|Außerdem kann man) viel über MicroPython lernen. Zum Beispiel, wie urequests Response-Header parst: Als Key/Value. Das ist uncool, da es durchaus Header gibt, die doppelt kommen können und sollen:

The optional replace parameter indicates whether the header should replace a previous similar header, or add a second header of the same type. By default it will replace, but if you pass in false as the second argument you can force multiple headers of the same type. For example:

Sagt PHP (replace Parameter).

The Set-Cookie HTTP response header is used to send a cookie from the server to the user agent, so that the user agent can send it back to the server later. To send multiple cookies, multiple Set-Cookie headers should be sent in the same response.

Sagt Mozilla.

Imho nicht unbedingt unseriöse Quellen, aber für MicroPython ist das trotzdem kein schlagendes Argument; Header duplicates werden weiterhin nicht unterstützt werden. Siehe meine längliche Diskussion ab hier.

Es gibt aber einen Workaround, und der ist imho nicht offensichtlich: Man kann nämlich urequests.post() mit einem Parameter parse_headers aufrufen, der erstmal ein Boolean ist – aber auch eine Callback-Funktion sein kann:

Das Fragment (ich hoffe, ich habe auf die Schnelle nichts vergessen) printed alle Cookies. HTH.