knuspermagier.de

Der privateste Blog von Philipp.

So was von da

Unsere Geschichte startet heute in am 11. Januar im Interface der Spotify-App. Ab und zu schaue ich mal in die Seitenleiste, in der man sieht, welche Musik meine Freunde gerade hören. Obwohl ich meinen Spotify-Account irgendwann von Facebook löste, wurden meine Freunde wohl übernommen und so folge ich noch ganz schön vielen Leuten!

An diesem schönen Tage hörte eine ehemalige Arbeitskollegin “Ich träume vom Träumen” von “Husten”. Der Name der Band klang lustig, also hörte ich mal rein. Der Song gefiel mir direkt gut, so auch einige andere, so hörte ich ein paar Tage vor mich hin und googelte irgendwann mal nach Husten. Normalerweise google ich ja nicht nach Krankheiten, da wird man ja nur verrückt, aber hier machte ich mal eine Ausnahme.

Ich fand den Artikel vom diffus Magazin, der kurz auf die Geschichte der Band eingeht.

Die Geschichte der Band Husten beginnt eigentlich bei einem Film oder vielmehr bei einem Buch. Es gab vage Pläne, „So was von da“ von Tino Hanekamp zu verfilmen, Musikproduzent Moses Schneider, der bereits mit prestigeträchtigen Bands wie Tocotronic und Beatsteaks gearbeitet hat, wollte sich dem Soundtrack annehmen und rekrutierte dafür Der Dünne Mann, seines Zeichens Mitglied der (inzwischen inaktiven) Berliner Band Viktoriapark. Aus dem Film wurde dann letztendlich nichts, aber die beiden Musiker waren eben schon am werkeln und beschlossen kurzer Hand, Sänger und Liedermacher Gisbert zu Knyphausen als dritten im unwahrscheinlichen Bunde aufzunehmen – Husten war geboren.

Da klingelten bei mir mehrere Glocken. Erstmal: Gisbert. Ja, mir kam die Stimme bekannt vor, doch kam ich da von alleine nicht drauf. Zum Anderen: “So was von da”. Das Buch von Tino Hanekamp las ich Anfang 2017 und befand es für sehr gut. Als ich es fertig gelesen hatte, hatte ich auch kurz darauf von den Plänen für einen Film gelesen und mich drauf gefreut, und mich sogar für einen Newsletter angemeldet.

Der Film war nun also fertig? Und Husten spielt mit? Noch mehr keimte in mir der Wunsch, den Film sofort zu sehen. werstreamt.es konnte mir zum Glück schnell verraten, dass Netflix den Film, der anscheinend schon 2018 raus kam, also vor vier Jahren, im Angebot hat.


Ich schaute mir den Film nun an zwei Abenden an, bereits nach der der ersten Hälfte merkte ich, dass da keine Spur war von Gisbert und ich las nochmal den diffus-Artikel. Dort steht direkt oben im Teaser, den ich beim ersten Mal überlesen haben muss:

So oder so ähnlich war das bei der Band Husten – die eigentlich mal einen Soundtrack machen wollte, für einen Film, der letztendlich nie erschien.

Aha. Die Band Husten hat sich also geformt um den Soundtrack für den Film beizusteuern, der aber anscheinend ein anderer Versuch war, das Buch zu Verfilmen, die aber am Ende nicht zu Stande kam. Schade. Kurios, dass es trotzdem eine Adaption gibt, die fertig geworden ist und das alles in etwa der gleichen Zeit. Wenn jemand mehr zu dem ganzen Hin und Her weiß, sagt bescheid, finde das spannend.


Zum Film: Ich freute mich sehr darüber. Er richtet sich grob nach den Geschehnissen im Buch und ist ähnlich verrückt und leicht durcheinander im zeitlichen Ablauf. Laut cinetastic.de wurden die Club-Szenen an vier Abenden mit “echten Partygästen” gedreht und von den Schauspielern weitgehend improvisiert — und das merkt man, wie ich finde. Und das meine ich so positiv, wie nur möglich. Die ganze Stimmung ist richtig gut und alles wirkt irgendwie frei, fluffig, ungeplant.

Ich war nie jemand, der in Clubs war, wo Leute tanzten. Selbst in meiner Zeit als regelmäßiger Genießer alkoholischer Getränke war ich immer nur in Bars und maximal einmal im Übel & Gefährlich, wo Leute zu furchtbarer Musik tanzten, stand da aber auch nur auf dem Balkon — und doch gab mir der Film irgendwie ein spaßiges Nostalgie-Gefühl.

Große Teile des Films sind sehr dunkel oder blinken wild, es geht viel hin und her, alle rauchen ständig oder konsumieren mehr Drogen, als man an einem Abend einnehmen sollte, denke ich, kenne mich damit nicht aus, aber irgendwie ist es halt wie im Buch und ich empfand es einfach als eine sehr kurzweilige, wilde Reise. Die Gastauftritte von Kalle Schwensen und Bela B trugen auch nur positiv dazu bei.

Top Film, danke an Steffi, dass sie Anfang Januar Husten hörte, sonst hätte ich es wahrscheinlich noch einmal zehn Jahre nicht mitbekommen.

Serie: BetterJournal
BetterJournal (2)

Zwei Tage und zwei weitere Kurz-Sprints weiter und mittlerweile ist es nicht mehr ganz so weiß und grau. Außerdem baute ich folgende Dinge ein, damit es Day One noch etwas näher kommt und benutzbar wird:

bejouv3.png

Ich hätte dazu jetzt gerne noch ausufernd was geschrieben und meine Arbeit beschrieben, aber letztendlich war nichts spannendes dabei. Also, vielleicht die Query für die Streaks, die benutzt nämlich eine Common Table Expression, wovon ich vorher noch nie hörte. Es ist quasi eine temporäre Tabelle, die man in der Query erzeugt und aus der man Kram herauslesen kann.

WITH groups AS (
    SELECT  RANK() OVER (ORDER BY date) AS row_number,
            date,
            date(date, "-" || RANK() OVER (ORDER BY date) || " days") AS date_group
            FROM journals
            group by date(date)
)

SELECT  COUNT(*) AS days,
        MIN (date) AS start,
        MAX (date) as max_date
FROM groups
GROUP BY date_group
ORDER BY max_date DESC
LIMIT 1

Natürlich habe ich das auch nur aus dem Internet zusammengesucht und auf meine Anforderungen angepasst, da wär ich ja niemals drauf gekommen.

Mit dem WITH groups () wird eine temporäre Tabelle erzeugt, die sich aus dem innenliegenden SELECT-Statement speist, die enthält die spannende Spalte date_group, in der die ganze Magie liegt.

Bisschen verwirrend, das alles date heißt, aber gut. Also, Folgendes: date() ist die SQLite-Funktion um ein Datum im Format YYYY-MM-DD auszugeben, und sie kann das Datum auch modifizieren. Hier nehmen wir also die Spalte date eines journals und ziehen davon die Zeilennummer (RANK() OVER (ORDER BY DATE)) ab. Die Pipes sind der SQLite-way um Strings aneinander zu pappen. Was ist jetzt die Magie daran, werdet ihr euch Fragen?

Angenommen, ihr habt eine Streak vom 1.9. bis zum 3.9. und eine vom 5.9. bis zum 7.9., hätte die Tabelle folgenden Inhalt:

Umso öfter ich es mir angucke, umso magischer finde ich es. Ich wünschte, ich käme auch mal auf so eine Idee und müsste es nicht erst auf Stack Overflow finden.

Hat man einmal diesen Teil, kann man nun aus der temporären groups Tabelle einfach die aktuelle Streak rausholen, in dem man nach date_group gruppiert und halt das Aktuellste nimmt.


Nach diesem kurzen Exkurs in die Welt von SQL, zurück zum Thema. Meine Todoliste wuchs beim Herumbasteln noch weiter, wie immer, typisches Ideenfeuerwerk, während man etwas baut und Spaß hat. Keine Davon ist jetzt allerdings so wichtig, dass ich sie dringend einbauen müsste, jetzt werde ich alles erstmal ein paar Tage oder Wochen Probelaufen lassen, hoffe ich. Man soll ja aufhören, wenn es am schönsten ist.

Eigentlich hätte ich auch Lust endlich mal wieder was auf Github hochzuladen, was tatsächlich auch andere benutzen können. Dazu müsste ich zumindest noch reindengeln, dass man die Defaults im “Hinzufügen”-Screen anpassen kann. Oder so. Mal sehen.

Automation is magic. It's magic. It's magic. It's magic. It's magic. It's magic. It's magic. It's magic. It's magic. It's magic.

This Post Was Written By Github Copilot auf flower.codes

Das lustigste, was ich in den letzten Wochen las. Musste mehrfach auf der Toilette laut lachen. Bin schon immer Fan von KI-Generierten Texten. Damals verbrachte ich Stunden mit SCIgen – was mittlerweile leider nicht mehr zu funktionieren scheint.

Serie: BetterJournal
BetterJournal (1)

Ja, ihr wisst was jetzt kommt. Ihr werdet wieder sagen, warum Philipp, warum benutzt du nicht einfach weiter Day One und ein paar andere Apps um genau das abzubilden, was du willst. Meine Antwort ist: Ja, werde ich in drei Wochen wahrscheinlich wieder machen, wenn mir aufgefallen ist, dass ich wieder nur einen Proof of Concept baute, der mir nach wenigen Tagen keinen Spaß mehr macht. Nichtsdestotrotz ist es mal wieder an Zeit der Zeit für ein paar Posts zum Thema “Philipp hat ein neues Laravel-Projekt erstellt”.

Weiterlesen →

Meat Loaf

Ich war gerade auf dem Weg zum Getränkemarkt, als ich im Radio hörte, dass Meat Loaf gestorben ist. Ich verstand zuerst „im Alter von 55 Jahren“ oder so was und war sehr überrascht, das kam mir komisch vor. Am Ende waren’s dann 75, das passt schon eher.

Tatsächlich hörte ich nie wirklich viel von Meat Loaf und trotzdem hatte ich doch kurz so einen „Ja, schade“, Gedanken im
Kopf, den ich normalerweise nicht habe, wenn eine Todesmeldung eines x-beliebigen Prominenten veröffentlicht wird.


Meine erste Erinnerung an Meat Loaf ist ein Wetten Dass-Auftritt zu der Zeit als sein Album „I couldn’t have said it better“ aktuell war. Der Song „Did I say that?“ mit seinem starken Tempo-Wechsel hatte es mir irgendwie angetan, abgesehen von seiner Stimme.

Soweit ich mich erinnere, war eben dieses Album dann auch eine meine ersten physischen Musik-CDs, die ich geschenkt bekam, oder selber kaufte, was aufs selbe hinaus läuft, denn alles Geld, was ich damals besaß, war geschenkt.

Da ich zu dem Zeitpunkt aber auch schon diverse MP3s auf dem Rechner hatte, hörte ich die CD nicht mal besonders viel, glaube ich. Insgesamt habe ich, wie gesagt, nie besonders viel Meat Loaf gehört, nichtmal Bat out of Hell, das werde ich mir aber wohl die Tage mal anhören.


Fünf Minuten googeln bringt jetzt natürlich auch die ganzen quatschigen Ansichten von Herrn Aday zu Tage, schade. Auch Eric Clapton haben wir ja leider schon verloren. Ich tu mal so, als hätte ich das alles nicht gelesen und behalte meine Meat-Loaf-Wetten-Dass-Erinnerung ohne den Ballast im Kopf.

RIP Meat Loaf.

Hier ein Lied von 1982 und ein Cover von 2021. Beides super. Hans Hartz sang übrigens auch den Beck‘s Song Sail Away.

Kein Sass mehr, Nesting mit PostCSS nachrüsten

Jahrhunderte lang benutzte ich Sass für alles mögliche. Wenn man vorher nur normales CSS schrieb war das ja auch eine Offenbarung, Variablen, Loops und Nesting! Naja. Wie das so ist, benutzt man sowas dann Ewigkeiten und hinterfragt es auch nie wirklich.

Nun kaufte ich aber ja diesen M1 Mac und musste meine gesamte Entwicklungsumgebung neu einrichten und habe diverse Probleme, die ich damals schon mit verschiedensten Legacy-Projekten hatte - node-sass. Teilweise habe ich Projekte mit Node 9 betrieben, weil ich den node_modules-Ordner nicht löschen und mit einer aktuelleren Node-Version wiederherstellen wollte, weil jedes mal irgendwas beim Kompilieren von libsass kaputt war. Kurz austauschen durch die modernere Variante, die in Dart implementiert ist, ersetzen war leider auch nie drin, man hat ja nie Zeit (und Lust) für sowas, vor allem, wenn der Quickfix, einfach kurz Node 9 benutzen, so nahe liegt. Also, bei Projekten, die man halt alle 6 Monate mal öffnet, um eine Zeile Code zu ändern.


Das Problem war nun etwas ausgeprägter, da die Node-Version nicht half, da libsass anscheinend auf M1 Macs einfach gar nicht kompiliert, zumindest bekam ich es nicht dazu. Hier und da habe ich mich also dazu durchgerungen, den beschwerlichen weg zu gehen und die Dependencies auszutauschen, was meistens auch ganz gut funktionierte, für ein paar egalere und kleinere Projekte, wie diesen Blog hier, zum Beispiel, überlegte ich mir allerdings mal, wozu ich Sass überhaupt noch brauche. Schon vor Monaten fing ich hier an, das CSS meistens einfach in <style>-Tags mit ins Blog-Template zu schreiben, als normales CSS, sorry, es ist ja nur mein Blog.

Ansonsten kann CSS mittlerweile auch Variablen und Nesting ist auch in einer (noch nicht umgesetzten) Spezifikation, lässt sich aber mit einem Tool wie PostCSS leicht nachrüsten. Die ganzen anderen Sass-Features habe ich eh eigentlich nie benutzt.

Jetzt tausche ich also den Sass-Postprocessor, den ich über mein CSS jage gegen PostCSS, was habe ich dadurch gewonnen, könnte man sich fragen. Ist wahrscheinlich auch ein berechtigter Einwand, trotzdem spart man sich eine Abhängigkeit (von sass) und PostCSS ist wahrscheinlich eh schon in vielen Stacks drin (bei mir selbst in diesen uralt-Projekten, wegen dem autoprefixer) und zum anderen schreibt man immerhin schonmal theoretisch, in der Zukunft, gültiges CSS – wenn der Build-Prozess in ein paar Jahren also mal wieder nicht funktioniert, aber die Browser die CSS-Spec dafür implementiert haben, kann man ihn auch einfach weglassen. Juchu.


Um das zu bewerkstelligen, braucht ihr nur Folgendes installieren:

npm install --save postcss postcss-preset-env

Dazu eine postcss.config.js:

const postcssPresetEnv = require('postcss-preset-env');

module.exports = {
  plugins: [
    postcssPresetEnv({
        stage: 0
    })
  ]
}

Und schwupps aufgerufen:

./node_modules/.bin/postcss test.css
/* Vorher */
div {
    & p {
        font-size:  12px;

        & .fett {
            font-weight: bold;
        }
    }
}

/* Nachher */
    div p {
        font-size:  12px
    }
div p .fett {
            font-weight: bold;
        }

Abgesehen vom abenteuerlichen Whitespace ist das Nesting nun korrekt aufgelöst. Leider muss man hier natürlich beachten, dass das Nesting nicht genau so funktioniert wie bei Sass, um genau zu sein braucht man hier immer noch so ein &, und es gibt natürlich tausend Dinge zu beachten, siehe die oben verlinkte Spezifikation. Theoretisch gibt es auch ein PostCSS-Plugin, welches das Sass-Nesting versteht, aber das Ziel war ja theoretisch gültiges CSS zu schreiben.

Ich werde jetzt versuchen meine Privatprojekte Stück für Stück von Sass zu befreien. Lang lebe CSS!

1% Weihnachtsbaum

Als wir letztes Jahr den Weihnachtsbaum kauften, bekamen wir einen kleinen Setzling dazu. Also wir konnten entscheiden, ob wir einen Setzling oder zehn Eier wollen, und naja, was wir entschieden uns natürlich für die coolere Variante. Jetzt müsste man nur regelmäßig gießen und schwupps hat man in nur einem Jahrzehnt oder so einen kostenlosen Baum, während sich niemand mehr an die Eier erinnern würde.

Als wir ihn vor einem Monat bekamen, waren nur die unteren, dunkelgrünen, Nadeln dran, vor ein paar Tagen ist nun die nächste Reihe Nadeln geschlüpft. Noch könnte man jeder Nadel einen Namen geben, ich bin gespannt, wie es sich weiter entwickelt!

20220116-215918-pwa-7747.jpg
20220116-220008-pwa-7752.jpg

Auf Youtube entdecke ich in letzter Zeit viel interessante neue Musik. Zum Beispiel Khruangbin.

Ich habe die Like-Herzen mal deaktiviert, da ich… für meinen Geschmack zu oft gucke, ob jemand etwas geliked hat. Ihr dürft meine Sachen natürlich weiterhin gut finden!