knuspermagier.de

Hallo. Ich bins! Philipp!

Statistiken

Gerade erst postete ich diesen Link zu verschiedenen Statistik-Softwaren, und schon habe ich selber was programmiert. Wie das halt so ist.

Wie ich im Post schon sagte, ich habe kein Interesse daran, hier ein Tracking-Script einzubinden, selbst wenn es gar keine Cookies speichert, oder sonstige böse Sachen macht. Alles was mich interessiert, ist eine ungefähre Zahl, wie oft meine Posts angeklickt werden, und das bekomme ich halbwegs okay aus den Webserver-Logfiles.

Ich schrieb mir also schnell ein schmutziges PHP-Script, dass die Logs parsed, ein paar Redis-Keys hochzählt und ein Kirby-Template, dass die gesammelten Daten ausgibt. Fertig ist die Laube.

Aufgefallen ist sind mir dabei folgende Dinge:

  1. Echt ganz schön wenig los hier
  2. Natürlich ist alles etwas verzerrt, da ich nur direkte Impressions auf Artikel zähle. Jeder, der auf die Index-Seite geht und sich durchscrollt, zählt natürlich nicht. Genauso wie jeder, der über RSS liest
  3. Wenn ich einen Post auf Twitter share, was ich nicht mit jedem mache, hat er auf jeden Fall wesentlich mehr Impressions

Wie dem auch sei, hier meine ausführlichen Statistiken der letzten sieben Tage, fast in Realtime.

GitLab Pipelines

Ich hab ja irgendwie oft Hemmungen Dinge zu posten, wo ich denke, dass das ja peinlich ist, weil alle anderen sicher viel weiter und professioneller sind, aber wahrscheinlich ist das ja Quatsch.

screenshot-2020-06-24-at-18.28.16.png

In unserem aktuellen Projekt haben wir jedenfalls seit kurzem endlich automatisiert laufende End-to-End-Tests (mit Cypress), die wunderbar einer Docker-Umgebung laufen (so wie auch die Backend-Tests) und damit ist die GitLab-Pipeline-Darstellung endlich mal etwas komplexer als nur „Setup, Build, Deploy“. Das freut mich!

React-Tagebuch (1)

Ich lerne ja mittlerweile doch ein bisschen React, was muss das muss. Seit dem es das ganze Hook-geshizzle gibt, muss ich sagen, dass ich es tatsächlich sogar ganz gut finde. Tatsächlich fühlt sich alles relativ easy und leichtgewichtig an, wenn man nur kleine Funktionen mit 1-2 useXyz-Aufrufen schreibt.

Dinge, die noch auf meiner Liste stehen, die ich mir irgendwann mal angucken will:

Trotzdem muss ich weiterhin sagen, dass ich JSX immer noch furchtbar finde. Und diesen CSS-in-JS-Kram. Ich weiß, letzteres hat nicht zwingend was mit React zu tun, wird aber von allen modernen Programmierern verehrt und dann immer benutzt. Ich hoffe, ich komme drumherum!

More and more web-site owners are concerned about the "all-seeing Google" tracking users as they browse around the web.

Lightweight alternatives to Google Analytics auf lwn.net, via Hackernews

Dieser Artikel geht gerade rum und zeigt ein paar Alternativen zu Google Analytics. Alle brauchen jedoch wieder ein JavaScript-Snippet.

Ich hab ja hier im Blog schon länger kein Google Analytics mehr, manchmal würde es mich aber trotzdem noch grob interessieren, wie oft Menschen sich auf den Blog verirren. Trotzdem möchte ich eigentlich auch weiterhin kein Tracking-Script einsetzen, egal, ob es Cookies setzt, oder nicht, oder ob ich das Ding sogar selber hoste.

Es gibt doch eigentlich schon eine wunderbare Lösung, um ganz simple Statistiken zu ermitteln: Die Logs vom Webserver. Nur, warum programmiert keiner mal einen Webserver-Analyzer, der nicht aussieht wie von 1995? Hab ich ihn nur bisher nicht gefunden? AWStats und Webalizer kann man jedenfalls visuell in die Tonne kloppen.

Relativ neu schein GoAccess zu sein, aber das ist... eher Realtime und gibt mir, soweit ich das sehe keine Monats-Auswertung.

Hat da jemand was parat, das täglich meine Access Logs ausliest, und mir dann monatlich Reports generiet, die schön aussehen? Also ungefähr so wie Plausible?

Unauthenticated

You just updated laravel/sanctum to the most recent version (2.4.1) and suddenly your fancy single page app hosted at localhost:3000 is not able to authenticate you anymore?

Well, you need to replace localhost with localhost:3000 in your SANCTUM_STATEFUL_DOMAINS. Thank me later.


You need to make this change because of this commit, coincidentally titled “solved host problem”. Very funny. I guess it solved the problem for… someone else.

Gestern bei Hotel Matze entdeckt: Judith Holofernes hat nun einen Podcast. Hörte gestern die Folge mit Funny van Dannen und es war sehr schön.

PrerenderSPAPlugin und Cookiebot

Stellt euch mal vor, ihr baut eine tolle Single Page Application, mit ein paar SEO-Seiten die über das PrerenderSPAPlugin beim builden gerendert werden. Nun will man sein Produkt launchen und setzt dafür noch schnell den wundervollen (haha) Cookie-Banner von Cookiebot ein und schwupps, ist das Prerendering kaputt.

Woran liegt das? Das Prerender-Plugin macht irgendwas mit einem Headless Browser, um herauszufinden, wie das gerenderte HTML wohl aussieht. Leider läd dabei natürlich auch das Cookiebot-Script, es macht irgendeinen Bockmist, und am Ende steht nicht das vorgerenderte HTML in der index.html, sondern nur der gleiche Quatsch, wie vorher. Zusätzlich noch mit einem völlig durcheinander gebrachten <script>-Tag von Cookiebot.

Naja. Es lässt sich fixen, indem man für das Cookiebot-Snippet erstmal nur einen Platzhalter, wie etwa <meta name="cookiebot"> in seine index.html packt, und diesen nach dem Rendern wieder ersetzen lässt. 🙃

new PrerenderSPAPlugin({
                staticDir: path.join(__dirname, 'dist'),
                routes: ['/', '/impressum', '/datenschutz'],
                postProcess(renderedRoute) {
                    renderedRoute.html = renderedRoute.html.replace(
                        '<meta name="cookiebot">',
                        '<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="XXX" data-blockingmode="auto" type="text/javascript"></script>'
                    )

                    return renderedRoute
                }
            })

Carrot Cake

Was macht man, wenn man zu viele Karotten hat? Genau, Mehl und Zucker dazu kippen und backen.

(Mit Frischkäse-Topping wäre es besser, aber ich hatte keinen).

3b1982c6-d8ae-44c8-8e34-1015fe584f2f.jpeg
Die Balkonpflanzen waren vor ein paar Wochen noch fotogener

Wie unschwer zu erkennen ist, bin ich zu blöd, gleichmäßig zwölf Marzipankarotten zu verteilen. Als am Ende vier übrig blieben, aß ich aus Frust erstmal eine, bevor mir einfiel, dass ich sie ja einfach in die Mitte legen könnte, also liegen da jetzt auch nur drei. Shit Happens.

05423648-311b-4275-ab99-e5a919bdbccf.jpeg

1Password und die Keychain

Seit Jahren benutze ich 1Password um dafür zu sorgen, dass meine Passwörter alle sicher und auf allen Geräten verfügbar sind. Im Großen und Ganzen funktioniert das auch wunderbar, in den letzten iOS-Versionen wurde auch alles nochmal besser, denn wenn man in Apps oder im Browser eine Passwort-Abfrage hat, kann man dank toller APIs auch direkt auf seine Daten im 1Password-Vault zugreifen. Soweit so gut.

Doch, was leider relativ problematisch ist, ist die Tatsache, dass diese API leider keine Passwörter in 1Password speichern kann. Surft man so durchs Web, like 1994, und erstellt dann bei einer Seite einen neuen Account, so schlägt der Browser zwar ein sicheres Passwort vor, und speichert das auch direkt für's nächste mal ab – aber leider in die iOS Keychain. Diese ist zwar auch synchronisiert, und ich kann mich auch vom Mac einloggen – also, falls ich Safari nutzen würde, lol.

So passiert es immer wieder, dass ich am Ende doch wieder die Passwort vergessen-Funktion einer Seite nutzen muss, oder mir sogar einen zweiten Account mache, weil ich vergessen habe, dass ich schon einen besitze! Wie dumm ist das denn.

Da es per über irgendwelche APIs am Rechner ja sicherlich möglich sein sollte die Keychain zu beschreiben und es auf jeden Fall auch APIs gibt, um Passwörter aus 1Password herauszupulen und reinzuschieben, könnte man sicherlich ein kleines Progrämmchen schreiben, dass die beiden Passwort Vaults synchronisiert.

Aber sowas muss es doch schon geben? Ich finde es nur leider nicht. Hat sonst niemand das Problem? Was soll ich nur machen? Komplett auf 1Password verzichten will ich sicherlich nicht. Hat jemand einen Tipp?

Update

Manchmal ist man ja auch ein bisschen dumm. Durch einen (sehr schnellen) Tweet von David und Markus kam ich auf die Lösung: In den Password Autofill-Einstellungen einfach die Keychain abschalten. Schon hat man nur noch 1Password, und dann erscheint auch dieses einschüchternde Modal nicht mehr:

img_4012.jpg

Das ist ja so überzeugend, dass man gar nicht auf die Idee kommt, auf “Choose your Own“ zu tappen und sich dann über drei weitere Taps bis zu 1Password vorzuarbeiten.

Aber gut, Problem erstmal gelöst. Trotzdem wäre jetzt natürlich ein Script gut, dass meine aktuellen Login-Daten einmal zu 1Password synct.

Ich hab endlich mal wieder angefangen Diablo 3 zu spielen. Diesmal auf der Switch. Immer noch grandios!