knuspermagier.de
Der privateste Blog von Philipp.

Top-Alben 2022

Es ist Jahres-Ende und damit die Zeit für Rückblicke und so Kram. Ich habe seit Jahren keinen davon mehr geschrieben und auch dieses Jahr werde ich keine Zusammenfassung schreiben. Trotzdem fragte ich mich letztens, welche Alben in 2022 eigentlich veröffentlicht wurden. Ich glaube, die Frage kam auf, als ich meine Spotify Top Tracks 2022-Playlist bekam und feststellte, dass sie zum Großen Teil mal wieder den gleichen Inhalt wie im letzten Jahr hatte.

Dank meines treuen Scripts, dass meine Spotify-Plays mitschneidet konnte ich nun schnell ermitteln, welche Alben ich in diesem Jahr besonders oft gehört habe. Leider speichere ich aktuell fast keine Meta-Informationen, also zum Beispiel auch nicht das Erscheinungsjahr des Albums, daher musste ich noch manuell Hand anlegen, um herauszufinden, welche der Platten nun also auch in diesem Jahr neu erschienen sind. Zum Glück hörte ich, wie man anhand der Playlist schon erkennen konnte, nicht viel Neues, und daher ging das schnell.

Hier folgt nun also eine Liste der Alben aus dem Jahr 2022, die einen etwas höheren Abspiel-Count vorweisen konnten:

Betterov — OLYMPIA

Ich entdeckte Betterov zwar in diesem Jahr (danke an Florenz), aber das Album, das ich die ganze Zeit durchhöre ist leider von 2021, also passt es hier nicht in die Liste. OLYMPIA ist sein echtes erstes Studio-Album und enthält alle Lieder, die vorher quasi wöchentlich auf Spotify gedroppt wurden, eine Sache die ich übrigens ziemlich dumm finde, denn es nimmt ein Bisschen die Überraschung. Naja.

Ich mag Betterov, und habe das Album auch ein paar Mal durchgehört, aber ich fürchte, ich werde für immer die Dussmann-Session hören und als OG Betterov in meinem Herzen behalten, OLYMPIA hat bei mir einfach nicht komplett gefunkt.

Funny van Dannen — Kolossale Gegenwart (Live)

Ein neues Live-Album von Funny. Freue mich immer, höre es drei oder vier mal durch und lege es zu den Akten. Lieder mit ausschließlich lustigen Texten schaffen es bei mir selten in Playlisten. Ist eher immer so eine Stimmungssache, dass man mal ein Funny-Album auflegt. Allerdings glaube ich nicht, dass es dieses Album sein wird, wenn wenn ich so über die Track-Liste scrolle, fällt mir kein Lied auf, welches ich jetzt besonders gut fand.

Sebastian Madsen — Ein Bisschen Seele

Mir gefällt dieses Album vom Madsen-Frontmann sehr gut. Es er schien erst im September und hatte daher noch nicht die Chance besonders oft gehört zu werden, aber mir gefallen die meisten Songs sehr gut, vor allem natürlich die Songs mit Eva Briegel und Drangsal.

FiNCH — Rummelbumms

Dieser Künstler ist komplett neu für mich, aber irgendwie spülte Spotify mir seinen Track mit Scooter rein und den find ich so richtig knorke. Rummelbumms enthält daneben noch einen Song mit Alligatoah, den ich auch ziemlich gut finde. Der Rest kriegt mich leider so gar nicht.

Keimzeit — Kein Fiasko

Kein Fiasko hat das gleiche Problem, wie alle Keimzeit-Studioalbem nach Bunte Scherben: Ein paar wenige gute Lieder, der Rest ist egal. Es wird endlich Zeit für ein neues Live-Album, dass die ganzen guten Songs der letzten Studioalben zusammenfasst.

Provinz — Zorn & Liebe

Nachdem ich Provinz entdeckte, ich glaube mit Neonlicht war das, hatte ich große Hoffnung. Leider gefällt mit Zorn & Liebe zum großen Teil gar nicht. Unsere Bank mit Danger Dan ist halt ultra gut, aber nichtmal das Feature von Casper bei Betäub mich kann mich davon überzeugen, aus dem Album mehr als ein One-Hit-Wonder zu machen.

Casper — ALLES WAR SCHÖN UND NICHTS TAT WEH

Wo wir schon bei Casper sind. AWSUNTW ist ein komischer Titel aber ein solides Album mit vielen guten Tracks. Eins der besseren in diesem Jahr!

Tocotronic — Nie wieder Krieg

Ich konnte nie richtig viel mit Tocotronic anfangen, aber das neue Album hat mich doch etwas mehr mitgenommen. Ich muss allerdings zugeben, dass ich die ersten sechs Songs wesentlich öfter höre als den Rest.

Alligatoah — Rotz & Wasser

Auch Rotz & Wasser litt für mich etwas darunter, dass die Lieder so reingetröpfelt kamen. Nichts desto trotz eine Platte voller Highlights. Bis auf Fuck Rock n Roll ist eigentlich jedes Lied sehr gut. Wobei selbst das okay ist, bis auf dieses Refrain-Sample.

Schandmaul — Knüppel aus dem Sack

Zu diesem Album habe ich mich ja im letzten Post erst ausführlich geäußert. Es ist sehr gut und damit verdient auf dem ersten Platz der “Alben, die im Jahr 2022 erschienen sind und am meisten gehört wurden”-Liste.


Würde mich jemand fragen, was meine Top-Alben von 2022 sind würde ich also so etwas antworten, wie:

Knüppel aus dem Sack, Rotz & Wasser und das neue von Casper mit diesem langen Titel, den man sich nicht merken kann.

Das neue Thees Uhlmann-Live-Album habe ich hier nicht aufgeführt, denn ich finde das Sound-technisch so schwach, dass ich es bisher nicht einmal durchhören konnte. Dabei liebe ich doch Live-Alben!

Ich stieg mit Folge zwei ein und war ziemlich verwirrt über das, was ich da sah, fand es aber doch schon ganz lustig. Später merkte ich, dass es von Tim Burton ist, sah auch Folge eins und war hooked. Gute Serie. Visuell sehr schön gemacht, ausreichend spannend, gute Mischung aus Horror und Teenie-Shit. Auch beste Performance einer Hand, die ich bisher sah.

Kirby-Editor mit Autocomplete

Nachdem ich den Autocomplete in der letzten Folge unserer kleinen Kirby-Sitcom nicht implementiert bekam, wand ich mich kurz an Fabian, um ihn zu fragen, ob er es schonmal ausprobierte, denn laut seinem Source sah es so aus. Er antwortete schnell und knapp, dass es da ein paar Probleme gab und er keine Zeit hat, ich es mir aber gerne selber angucken kann.

Ungelöste Probleme triggern mich natürlich etwas, also schaute ent-kommentierte ich den Autocomplete-Kram mal direkt im Plugin, statt über den Umweg ein Plugin fürs Plugin zu schreiben und schwupps, es funktionierte.

Ich sah aber auch schon schnell das Problem, weshalb der Code auskommentiert war: Die ausrichtung des Autocomplete-Tooltips ist völlig Banane. Ist mir aber erstmal egal, das sieht eh bescheiden aus, ist mir jetzt auch egal, wo es rumhängt.

Ich fuhrwerkte schnell ein bisschen herum und schwupps, habe ich ein Autocomplete für Verlinkungen zu anderen Seiten. Es ist natürlich nicht fertig, es wäre sinnvoller direkt (link: xyz title:… zu benutzen, statt hier meinen erfundenen (page:-Tag, aber das sind ja nur details. Wichtig war mir zu gucken, ob es theoretisch geht und das geht es.

Jetzt müsst ich mir noch durch den Kopf gehen lassen, ob ich das wirklich brauche und ich könnte es fertig bauen.

Vielleicht hab ich doch noch einen sinnvollen Anwendungsfall gefunden für den CodeMirror-Editor.

Ein besserer Editor in Kirby

Der Kirby-Editor ist ja eigentlich ganz okay. Die meisten Posts schreibe ich eh in Bear und werfe sie einfach rüber. Letztens wollte ich aber doch mal einen neuen Button in die Toolbar aufnehmen und natürlich geht das einfach nicht. Gleichzeitig droppte jemand im Kirby-Discord einen Link zu kirby-markdown-field, einem Kirby-Plugin von Fabian Michael.

Damit bekommt man einen auf CodeMirror basierenden Editor, der ganz nettes Syntax-Highlighting beherrscht und vor allem erweiterbar ist.

Ich hatte mittlerweile, also so einen Tag später, schon wieder vergessen, was ich eigentlich mit dem Button wollte und hatte direkt eine neue Idee. Ich könnte ein Autocomplete einbauen, damit ich direkt inline eine Auswahl von Pages habe, wenn ich (link: tippe. Wie cool wäre das denn.

Nach dreißig Minuten gab ich allerdings entnervt auf, da CodeMirror anscheinend eine der am schlechtesten dokumentierten Sachen überhaupt ist. Es gibt zwar ein eingebautes autocomplete-Modul, aber iiiirgendwas klappt nicht, wenn ich es versuche zu laden. Nachdem ich schon im Source auf Github nachgucken musste, wie ich das Modul überhaupt aktiviere, hatte ich keine Lust mehr, zu debuggen, warum es jetzt nicht geht.

Ich guckte noch kurz im Source des Kirby-Plugins und da ist das Autocomplete-Modul auch aus Gründen drin, aber auskommentiert. Vielleicht ist es besser so.

Abgesehen davon find ich den Editor bisher ganz nett, wenn mir jetzt wieder einfällt, wozu ich den Button brauchte, wird sich der Umstieg vielleicht auch gelohnt haben!

Code-Snippets von Github einbinden

Eigentlich dachte ich, dass ich in meinen langen Post von gestern noch ein paar Codesnippets reinpacken werde und baute mir daher ein kleines Kirby-Plugin, mit dem ich ganz einfach ein paar bestimmte Zeilen direkt aus Github ziehen kann. Letztendlich benutzte ich es gar nicht, weil der Post schon lang genug war.

Trotzdem wollte ich es kurz vorführen!

(​github:pwaldhauer/kirby-activitypub-lite/main/src/Controller/ActivityPubController.php line:18 count:23)



        switch ($params['type']) {
            case 'Undo':
                $actor = Actor::fromActorString($params['actor']);
                if ($params['object']['type'] == 'Follow' && $params['object']['object'] == $this->config->actorString()) {
                    $this->config->storage->removeFollower($actor->toArray());
                }

                return ['success' => true];
            case 'Follow':
                $actor = Actor::fromActorString($params['actor']);

                $request = new AcceptActivityPubRequest($this->config, $params);
                $request->build();
                $request->sendRequest($actor->host, $actor->inbox);

                $this->config->storage->saveFollower($actor->toArray());

                return ['success' => true];
            default:
                return ['error' => 'not implemented'];
        }


Mal sehen, ob ich es mal für irgendetwas anderes gebrauchen kann. Werde es demnächst mal hübsch machen und dann in meine lange Reihe von Kirby-Plugins einreihen.

Eine Idee, die ich letztens hatte, hat schon jemand anderes gebaut, wie nice ist das denn. Ein Bookmarklet, mit dem man mit einem Klick Mastodon-Profilen auf anderen Instanzen folgen kann. Danke, Kevin C!

Einen einfachen ActivityPub-Server bauen, oder: der Kirby-Blog als Fediverse-Teilnehmer in vierhundert einfachen Schritten

Wie im letzten Post dazu schon angeteasert, wollte ich noch ein paar Worte dazu verlieren, wie ich in den letzten Wochen diesen Blog ans Fediverse angeschlossen habe. Der Code ist mittlerweile als eine Art Kirby-Plugin auf Github verfügbar.

Vielleicht ist der Code und dieser Post eine kleine Hilfestellung auf der Reise durch den Dschungel der mittelmäßigen Dokumentation zum Thema Fediverse, Mastodon und so weiter.

Weiterlesen →

Der “Folge mir auf Mastodon”-Helfer

Ich habe gestern eine kleine Fediverse-Übersichtsseite gebaut, auf der alle Follower, die den Blog abonniert haben aufgelistet sind. Natürlich wollte ich auch einen CTA auf die Seite packen, damit man direkt auch folgen kann, doch im dezentralen Fediverse ist das nicht so einfach.

Bei Twitter würde man ja einfach auf twitter.com/knuspermagierblog verweisen und jeder, der dort gerade eingeloggt ist, kann direkt den Button drücken. Da im Fediverse alle auf unterschiedlichen Servern unterwegs sind, klappt das nicht so einfach. Normalerweise müsste man das Handle kopieren, es im Interface des Servers, oder der App eingeben und danach suchen.

Um den Vorgang etwas zu vereinfachen habe ich auf diversen Seiten schon diesen Flow gesehen, bei dem man zunächst sein eigenes Handle, also z. B. pwa@norden.social in ein Textfeld eingibt und direkt auf eine Seite weitergeleitet wird, die zum eigenen Server gehört, auf dem man dem zu folgenden Account folgen kann. Was für ein Satz.

In meinem Beispiel käme man dann auf folgende Adresse, die auf einem OStatus-Standard basiert.

https://norden.social/authorize_interaction?uri=knuspermagier@knuspermagier.de

OStatus

OStatus ist eine Sammlung aus Protokollen (z.B. Webfinger), die es möglich machen, unabhängige Webseiten und Dienste miteinander zu verknüpfen. Irgendwie ist es mittlerweile alles von ActivityPub überschattet und es sieht auch nicht sehr maintained aus. Nichtmal die im Schema verlinkte Domain ostatus.org gibt es noch. Geht besser nicht drauf, ist jetzt irgendein Casino-Spam.


Remote-Follow-Flow

Jedenfalls wollte ich es auch und baute es daher kurz auf die Seite ein. Hier der Source-Code, falls ihr es für eure eigenen Fediverse-Seiten klauen wollt:

<form data-sup>
    <input type="text" name="handle" placeholder="pwa@norden.social">
    <button>Los</button>
</form>

<script>
document.querySelector('[data-sup]').addEventListener('submit', (ev) => {
    ev.preventDefault();

    const value = document.querySelector('[name="handle"]').value;
    const [_, host] = value.split('@');

    fetch(`https://${host}/.well-known/webfinger?resource=acct:${value}`)
        .then(r => r.json())
        .then(j => {
            j.links.forEach(link => {
                if (link.rel === 'http://ostatus.org/schema/1.0/subscribe') {
                    location.href = link.template.replace('{uri}', 'pwa@norden.social');
                }
            })
        })
       .catch(() => {
            alert('Account nicht gefunden!')
        })
})
</script>

Was passiert da?

Ich versuche gerade mit Überschriften zu arbeiten, um längere Posts etwas zu strukturieren, wie gefällt euch das?

Natürlich könnte ich es mir einfach machen, und direkt davon ausgehen, dass das angegebene Handle zu einer Mastodon-Instanz gehört, die diesem Remote-Follow-Flow immer gleich implementiert, dann müsste ich nur den Hostnamen heraussplitten und /authorize_interaction?uri=… dranhängen.

Der Vollständigkeit halber gehen wir hier aber auf Nummer sicher und machen es... standardkonform? Wir rufen die Webfinger-Adresse des Servers auf und fragen nach, was er denn so für Links zum angegebenen Handle im Angebot hat. Ist ein Link dabei, der dem OStatus-Subscribe-Standard entspricht, nutzen wir den und leiten den/die User:in weiter. Easy peasy.

DSGVO

Ich bin ein kleiner DSGVO-Nerd und frage mich jetzt direkt, ob diese Implementierung überhaupt legal ist. Immerhin macht das Formular einen Request zu einem Drittanbieter und man weiß ja nun nicht, ob der Mastodon-Server nun in der EU steht oder auch nicht. Eigentlich bräuchte man also bestimmt noch eine Checkbox, in der steht, dass man sich damit Einverstanden erklärt, dass man seine IP zu einem Drittanbieter, der im schlimmsten Fall in den Vereinigten Staaten liegt, schickt.

Andererseits schickt man seine IP ja in jedem Fall zu einem Server, bei dem man eh einen Account hat, der hat also eh alle Daten über einen. Ich würde das also erstmal als okay einschätzen, aber bitte macht mich nicht dafür verantwortlich, wenn ihr wegen eines Webfinger-Requests abgemahnt werdet.

(Allgemein wünschte ich mir, ich müsste mir nicht ständig, bei allem, über die DSGVO Gedanken machen, aber meine Agenturzeit während der “Unserer Webseite muss jetzt noch schnell dafür fit gemacht werden”-Welle hat mich wohl für immer gebrandmarkt)

Schamlose Eigenwerbung

Wie ihr seht, so ein kleiner Follow-Helfer ist gar nicht so schwer auf der eigenen Webseite zu integrieren! Folgt mir (oder dem Blog) doch auf Mastodon um… mehr davon zu bekommen.