Kölner Schwarzbrot

Kölner Schwarzbrot

Das saftige Schwarzbrot meiner kölschen Heimat ist eines der Nahrungsmittel, die mir in Bulgarien am meisten fehlen. Zum Glück lässt es sich leicht zu Hause backen, sofern man einigermaßen passende Zutaten auftreiben kann. In Bulgarien schwierig zu finden sind hauptsächlich Rübenkraut, Buttermilch und Roggenschrot.

Taubnesseln in Pfannkuchen mit Spiegelei

Purpurrote Taubnessel in Pfannkuchen

Vor wenigen Tagen erstrahlte mein Garten plötzlich in sattem Purpurrot. Eine kurze Recherche im Schmeil-Fitschen ergab, dass es sich dabei um die purpurrote Taubnessel (Lamium purpureum) handelt. Schön! Nur, genau als ich der purpurroten Pracht mit dem Rasenmäher zu Leibe rücken wollte, gab dieser den Geist auf, und eine Ziege besitze ich nicht. Zum Glück stellte sich die ganze Pflanze als essbar auf für Menschen heraus. Mission erfüllt!

Lerna Mono-Repos mit internen Abhängkeiten

Mono-Repos sind mittlerweile sehr beliebt, um einige miteinander in Zusammenhang stehende JavaScript-Bibliotheken in einem einzigen Repository zu vereinen. Herauszubekommen, wie genau Abhängigkeiten zwischen verschiedenen Paketen innerhalb dieses Repositories zu behandeln sind, war für mich etwas knifflig. Dieser Blog-Post beschreibt, wie ich es gelöst habe.

Nummerische Vergleiche ohne Überlauf

Wenn man Zahlen verarbeitet, die nicht aus vertrauenswürdigen Quellen stammen, sollte man immer damit rechnen, dass diese Zahlen nicht in den Datentypen passen, den man verwendet. Solche nummerischen Überläufen können schnell zu subtilen Bugs oder sogar Sicherheitsproblemen führen.

URL-Validierung im Detail

Ich arbeite gerade an einer Web-Applikation, in der User einen Link zu ihrer Homepage angeben können. Der Link muss clientseitig mit JavaScript (genauergesagt Typescript/Angular) und serverseitig mit Perl validiert werden. Aber was genau sollte als Homepage akzeptiert werden? Und wie geht man die Analyse der übergebenen URLs an?

Angular - Bootstrap modale Dialoge mit Ngrx-Effects

Es ist einfach, einen modalen Bootstrap-Dialog in Angular darzustellen. Innerhalb eines NgRx-Effekts ist es jedoch schon etwas komplizierter. Dieser Artikel erläutert alle notwendigen Schritte, um dies innerhalb einer einfachen Angular-Applikation zum Zählen zu realisieren.

Postfix, Amavis und ClamAV extrem langsam

Seit kurzer Zeit dauerte es länger und länger, bis Postfix eingehende Mails an Dovecot ausliefert. Am Ende stellte sich das als einfaches Rechteproblem heraus: ClamAV konnte nicht die von Amavis erzeugten Dateien lesen, und rannte offensichtlich für jeden einzelnen Zustellungsversuch in einen Timeout.

Gestohlener Schlüssel

Google Maps API-Schlüssel gratis nutzen

Die Verwendung eines Google-API-Schlüssel kann auf eine konfigurierbare Menge von Host- und Domain-Namen eingeschränkt werden. Schützt das vor Missbrauch des Schlüssels durch Dritte? Nein, nicht wirklich.

Passwörter auf Aufkleber am Monitor

Gespeicherte Passwörter für alles

Einige Webseiten und Applikationen verhindern die Verwendung gespeicherter Zugangsdaten. Eigentlich besteht dazu kein Grund. In der Mehrzahl der Fälle handelt es sich lediglich um eine Bevormundung der Nutzerinnen und Nutzer, nicht selten also der Personen, die diesen Dienst sogar noch finanzieren. Zum Glück lassen sich solche paranoiden Einstellunge dennoch relativ einfach umgehen.

Syslog-ng "Unique Persist Names"

Ich bevorzuge ein separates Logfile /var/log/mail für Mail, damit die Logs von Postfix und Dovecot nicht in /var/log/message untergehen. Beim Upgrade auf Version 3.13.2 von syslog-ng hatte ich plötzlich eine Fehlermeldung, die einen Start des Daemons verhinderte: