Carry a Laser!

Neulich wurde ich darauf aufmerksam gemacht, dass in dem bekannten Song „Kyrie“ von Mr. Mister der Text „Kyrie Eleison“ klingt wie „Carry a laser“. Aber das ist doch nur ein typischer Fall von einem falsch gehörten Text, so wie „Gopher Tuna“ und viele andere, oder? ODER??

Die verborgene Bedeutung

Tatsächlich ist der Liedtext nicht weniger sinnvoll, wenn man überall „Kyrie Eleison“ (Herr, erbarme Dich!) durch „Carry a laser“ (Trag einen Laser) ersetzt.

Beginnen wir mit dem Refrain:

(Kyrie Eleison / Carry a laser) down the road that I must travel

(Kyrie Eleison / Carry a laser) through the darkness of the night

(Kyrie Eleison / Carry a laser) where I’m going, will you follow?

(Kyrie Eleison / Carry a laser) on a highway in the night

Betrachtet man das Lied als ein Gebet, so bittet also der Sänger darum, der Herr möge sich ihm auf seinem Weg erbarmen. Aber müsste es in der zweiten Zeile dann nicht eher „in the darkness“ heißen? Der Herr soll sich seiner auch in der Dunkelheit, nicht durch die Dunkelheit, erbarmen. Das Licht eines Lasers dagegen leuchtet in der Tat durch die Dunkelheit. Auch die dritte Zeile ergibt mit Laser mehr Sinn. Der Sänger trägt also einen Laser mit sich, wohin er auch geht.

Weiterhin wäre es zumindest im Katholizismus üblich, nicht nur das Erbarmen des Herrn, sondern auch die Hilfe der Heiligen zu erbitten, ginge es hier wirklich um einen Segen für eine Reise. Der Schutzheilige der Reisenden, St. Christopherus, wird jedoch nicht erwähnt.

Ein Edelstein

Einen echten Hinweis auf einen Laser liefert die folgende Liedzeile:

My body burns a gem-like flame

Der erste Laser aus dem Jahr 1960 basierte auf einem Rubin, also einem Edelstein (gem), als aktivem Medium. Mit „gem-like flame“ ist also das Innere eines Festkörperlasers gemeint.

Die Seele der Musik

Die selbe Strophe, die auf den Rubinlaser anspielt, liefert auch einen Hinweis darauf, dass nicht irgendein Laser, sondern der Laser eines CD-Spielers gemeint ist.

My heart is old, it holds my memories

My body burns a gem-like flame

Somewhere between the soul and soft machine

Is where I find myself again

Mit den „memories“ sind hier die auf der CD gespeicherten Daten gemeint. Die beiden letzten Zeilen beschreiben den Prozess der Digital-Analog-Wandlung als Zusammenspiel von Hard- und Software ( „soft machine“ ). Als Ergebnis findet sich in den Daten die Musik und somit der Sänger selbst wieder ( „I find myself again“ ).

Der historische Kontext

Der Song wurde im Jahr 1985 als Single und auf dem Album „Welcome To The Real World“ veröffentlicht. Die CD wurde kommerziell 1982 eingeführt. Der erste tragbare CD-Player, der Sony D-50/D5 Discman, erschien aber erst 1984, ebenso wie das erste CD-Autoradio Pioneer CDX-1.

Zum Zeitpunkt der Veröffentlichung war es also erstmals für jedermann möglich, tatsächlich einen Laser auf Reisen mitzunehmen und auf dem Highway im Auto Musik von CD zu genießen.

Fazit

Zusammenfassend kann man sagen, dass einiges dafür spricht, dass es tatsächlich „Carry a laser“ heißen sollte und damit der Laser eines tragbaren CD-Players gemeint ist, da es zahlreiche mehr oder weniger offene Hinweise gibt, nämlich

  • die fast nicht verklausulierte Erwähnung eines Rubinlasers,
  • in der selben Strophe eine technische Beschreibung des CD-Abspielvorgangs,
  • das Erscheinen des Lieds direkt nach der Markteinführung des ersten CD-Autoradios und des ersten Discman™ sowie
  • die Nicht-Erwähnung des heiligen Christopherus.

Und schließlich: Was ist wahrscheinlicher? Dass eine Rockband, bei der es sich nicht um einen Kirchenchor handelt, ein Gebet vertont, oder doch eher, dass sie ihre Tonträger bewirbt?

Wilhelm von Ockham würde mir ganz sicher zustimmen.

Netflix auf dem Raspberry Pi – Update 2022

Für das Media-Center Kodi gibt es nach wie vor ein inoffizielles Netflix-Plugin. Inzwischen ist Kodi 19 aktuell, daher ist mal wieder ein Update der Anleitung erforderlich. Auf dem Raspberry Pi läuft LibreELEC als speziell angepasste Distribution für Kodi. Mit dem Raspberry Pi Imager kann man sich eine SD-Karte dafür erstellen. Wenn in der Auswahl die passende LibreELEC-Version nicht auftaucht, weil man gerade keinen Raspi 4 zur Hand hat, kann man sich direkt von der LibreELEC-Webseite eine Version für den Raspi 2 oder 3 runterladen.

Das Netflix-Plugin liegt im inoffiziellen Kodi-Plugin-Repository von CastagnaIT. Auf dieser Github-Seite ist u.a. ein ZIP, mit dem sich das Repo in Kodi nachinstallieren lässt und aus diesem Repo dann das Netflix-Plugin.

Benötigte Dependencies (InputStream, Widevine…) werden spätestens dann nachinstalliert, wenn man versucht einen Film zu schauen.

Es versteht sich von selbst, dass ein gültiges Netflix-Login Voraussetzung ist.

FXGL11 Level laden

Anscheinend hat sich bei FXGL11 gegenüber den teilweise schon etwas älteren Tutorials was geändert. Das ist eine Sache.

Eine andere, die mich grad in den Wahnsinn getrieben hat, war, dass das Laden eines mit Tiled erstellten Levels schon schief ging, weil das eigentlich vorgesehene, simple

    FXGL.setLevelFromMap("level0.tmx");

die Datei offenbar am falschen Ort gesucht hat. Nach ewigem Rumprobieren mit der Verzeichnisstruktur gab es Abhilfe letztlich nur mit dem etwas umständlicheren:

protected void initGame() {
    FXGL.getGameWorld().addEntityFactory(
        new PlanetExpressFactory());
    TMXLevelLoader tl = new TMXLevelLoader();
    FXGL.getGameWorld()
        .setLevel(tl.load(
        this.getClass().getResource("/assets/levels/level0.tmx"),
        FXGL.getGameWorld()));
}

JavaFX Mac-App erstellen mit Eclipse und Maven

… mit OpenJDK und JavaFX in der Version 14.

JavaFX braucht nicht extra installiert werden, wenn man ein neues Maven-Projekt über den Archetyp org.openjfx aus Maven Central erstellt. Um die Dependencies kümmert sich Maven.

In der pom.xml den Pfad zum jlinkExecutable einstellen sowie einen Launcher festlegen:

<plugin>
  <groupId>org.openjfx</groupId>
  <artifactId>javafx-maven-plugin</artifactId>
  <version>0.0.4</version>
  <configuration>
    <mainClass>package.App</mainClass>
    <jlinkExecutable>/Pfad/zu/jlink</jlinkExecutable>
    <launcher>MeinLauncherSkript</launcher>
  </configuration>
</plugin>

Dann aus Eclipse die pom ausführen als Maven build… und bei Goals javafx:jlink einstellen.

Es wird im target-Verzeichnis ein Verzeichnis image erzeugt, dass u.a. die angepasste Java Runtime sowie ein Launcher-Skript enthält. Vom Terminal aus kann das Launcher-Skript jetzt schon gestartet werden.

Um ein schönes .app-Bundle zu erzeugen, im Terminal ins target-Verzeichnis wechseln und dann:

jpackage --type app-image -i image -n MeineApp -m mein.modul/mein.package.Mainclass --runtime-image image/

Wenn jpackage nicht gefunden wird, muss der Pfad noch händisch gesetzt werden. jpackage liegt ganz normal im bin-Verzeichnis des JDK.

Natürlich sind jeweils die richtigen Namen für die Module, Packages und Klassen einzusetzen. Es kommt dann eine schöne Mac-Application raus, die sich durch Doppelklick starten lässt. (Ich bin mir nicht sicher, ob XCode dafür installiert sein muss, damit das Packagen funktioniert. Bei mir war’s drauf.) Ist dann halt > 100 MB, aber egal. :-]

Von Klopapier und Seife – Corona 1

Während der Corona-Krise schien jeder Mensch nur eins zu brauchen: Klopapier. Als in unserem Vorrat nur noch drei Rollen übrig waren, habe ich ganz naiver Weise versucht, neues Klopapier beim Supermarkt um die Ecke zu kaufen. Der Anruf meiner Mutter hätte mir eine Warnung sein sollen: „Sag mal, ist Krieg und ich habe es nicht mitbekommen? Ich versuche seit zwei Stunden Klopapier zu kaufen!“

Leeres Regal für Klopapier

Nachdem ich in den fünf umliegenden Supermärkten nur leere Regale gefunden habe, entschloss ich mich, das Klopapier im Internet zu bestellen. Doch, oh Wunder, auch dort gab es Lieferschwierigkeiten und als die letzte Rolle angebrochen war und immer noch kein Paket in Sicht war, bin ich erneut auf die Suche gegangen. Ich zog von Geschäft zu Geschäft ohne Erfolg. Netterweise gab es im DM schon den Hinweis im Eingang, dass Klopapier und Seife gerade ausverkauft waren.

Hinweisschild im Eingang des dm

Als ich trotzdem rein ging, flammte meine Hoffnung auf Klopapier kurz auf, da ich dort doch Seife fand.

Währenddessen klingelte ein Paketbote an unserer Haustür und lieferte ein Paket des Toilettenpapierherstellers ab.

Toilettenpapierbestellung mit Taschentüchern

Im DM allerdings hatte ich kein Glück… oder doch? Zu meinem Einkauf habe ich an der Kasse eine Flüssigseife geschenkt bekommen.

Plötzlich gab es doch Seife

So kam ich mit zu viel Seife und zu wenig Papier heim, um dort das Paket zu öffnen.

Im Paket fanden sich 16 statt der bestellten 64 Rollen und als Ersatz vier Großpackungen Taschentücher.

Amazon Prime Video und Netflix auf dem Raspberry Pi – Update

Alles ist nun viel einfacher als im letzten Artikel beschrieben. Kodi 18 ist inzwischen aktuell, der ganze Kram mit experimentellen Builds ist Vergangenheit und man muss nicht mal LibreELEC nehmen, sondern kann Kodi unter Raspbian laufen lassen und parallel zu einem Desktop oder RetroPie betreiben.

Das Amazon Prime Plugin muss man sich aber immer noch aus dem Sandmann79 Repository besorgen, das vorher manuell einzutragen ist.

In den Einstellungen des Amazon VOD Plugins musste ich dann noch die Region händisch einstellen, sonst ging der Login nicht.

Außerdem muss (mit apt) das Paket kodi-inputstream-adaptive installiert sein, sonst kann das vom Amazon-Plugin mitinstallierte InputStreamHelper-Plugin in Kodi das Widevine-Geraffel (für’s CRM) nicht herunterladen.

Und dann war halt noch so Kindergartenzeugs einzustellen, wie z.B. der Audio-Kanal, wenn auf einmal der Center-Kanal fehlt…

Für Netflix muss händisch noch Pycryptodome installieren. pip install pycryptodomex