Ich gegen das Web

Der Blog von jemanden der gegen das Web kämpft.

Über diesen Blog

Sebastian schreibt hier manchmal über seinen Kampf gegen das Internet. Wer da wohl gewinnt?

Navigation

Wenn Ubuntu und nginx ein Problem mit IPv6 haben (Cannot assign requested address)

Mögliche Gründe warum IPv6 auf deinem nginx-server nicht läuft.

wenn-ubuntu-und-nginx-ein-problem-mit-ipv6-haben-cannot-assign-requested-address

Wenn die IPv6 Adresse nicht vom Nginx akzeptiert wird und du die Fehlermeldung Cannot assign requested address erhältst, kann dies aus mehreren verschiedenen Gründen sein.

Im Folgenden ein paar Fehlerursachen, die mir schon mal begegnet sind:

IPv6 in die Hosts-Datei

$ vim /etc/hosts
# Hier die Adresse hinzufügen. 
# Quasi sowas wie [1:1:1:1:1:1] example.com

IPv6 in network interface

$ vim /etc/network/interfaces
# Hier die Adresse hinzufügen. 

Ein anderer Webserver aktiv?

Manchmal befindet sich noch ein zweiter Webserver auf deinem Server. Bei mir war es neulich der Apache, der sich einige Wochen vor mir versteckt hatte und nach einem Neustart den Start vom nginx-Webserver verhinderte.

Weitere Gründe

Hast du noch andere Gründe? Dann immer her damit. Ich will hier ein living-document machen ;)

Fail2Ban eine bestimmte IP entfernen

Mir passiert es noch immer ab und an, dass ich mich aus meinem eigenen Server aussperre. Der Grund: Bei mir ist fail2ban sehr aggressiv konfiguriert. Es reicht ein fehlerhafter Login und ich bin draußen.

In solchen Fällen heißt es für mich dann stets: Notfallkonsole öffnen und meine IP entsperren.

Minimalistische Grundkonfiguration um Sass zu Css zu kompilieren

Ganz einfach Sass-Dateien in CSS-Code umwandeln. Ganz ohne Streß.

minimalistische-grundkonfiguration-um-sass-zu-compilen

Sass (kurz für syntaktisch fantastische Stylesheets) ist eine Präprozessor-Skriptsprache, die in Cascading Style Sheets (CSS) interpretiert oder kompiliert wird. SassScript ist die Skriptsprache selbst. Sass besteht aus zwei Syntaxen. Die ursprüngliche Syntax, "die eingerückte Syntax" genannt, verwendet eine ähnliche Syntax wie Haml. Dabei wurden Einrückungen genutzt um Codeblöcke und Regeln zu trennen. Die neuere Syntax "SCSS" (Sassy CSS) verwendet eine Blockformatierung wie die von CSS. Dies bedeutet, es werden geschweifte Klammern und Semikolonsgenutzt, um den Inhalt zu strukturieren. Alte und neue Syntax erhalten traditionell die Erweiterungen .sass bzw. .scss.

Nahezu alle CSS Frameworks bieten ein Sass-Package an (manchmal auch ein Less). Wenn du auf ein solches Framework zurückgreifen möchtest, bietet es sich an die Sass-Dateien so einzubinden, dass du das fertige CSS an deine Website oder dein Projekt anpasst und unnötigen Überhang vermeidest.

Ich möchte dir zeigen wie du das elegant mit npm machst.

Webentwicklung mit ddev-local - Kleines Einsteigertutorial

Eine kleine Einführung in die lokale PHP-Entwicklungsumgebung ddev-local

webentwicklung-mit-ddev-local-kleines-einsteigertutorial

ddev-local ist ein Open-Source-Tool, mit dem es wirklich (also so wirklich wirklich) einfach und unkompliziert ist, lokale PHP-Entwicklungsumgebungen innerhalb von Minuten zum Laufen zu bringen. Es ist bietet projektbezogene Umgebungskonfigurationen, die das ganze leistungsstark und flexibel machen. ddev-local-Umgebungen können einfach erweitert, versioniert und gemeinsam genutzt werden. Kurz gesagt, ddev-local soll es Entwicklungsteams ermöglichen, Docker in ihrem Workflow ohne die Komplexität einer maßgeschneiderten Konfiguration zu verwenden. Ein wenig erinnert mich ddev an die "alten" Vagrant-Umgebungen. Nur ist ddev-local deutlich einfacher zu warten und gemeinsam nutzbar.

ddev-local wird von Drud Technology erstellt und gewartet. Neben ddev-local bietet Drud Technology auch ddev-live an. Dies ist quasi der Counterpart von ddev-local, jedoch mit noch einigen weiteren Features.

Im Folgenden soll es nun einen kleinen Einstieg in ddev-local geben. Ich zeige dir, wie du ddev-local auf deinem Rechner installierst, eine Umgebung erzeugt, diese anpasst, nutzt und am Ende auch wieder löschen kannst.

Noch ein kleiner Hinweis: Bei Drud ist meistens mit ddev ddev-live gemeint. Wenn ich ddev schreibe, meine ich damit immer ddev-local.

Mein Versuch auf Amazon zu verzichten. Und welche Alternativen es gibt.

Wie und warum ich aufgehört habe bei Amazon einzukaufen.

mein-versuch-auf-amazon-zu-verzichten

Ich bin seit vielen Jahren Kunde bei Amazon. In dieser Zeit habe ich wirklich eine menge Dinge dort gekauft. Entweder direkt bei Amazon oder über einen Händler, welcher bei Amazon auf dem Marketplace aktiv ist. Waren es im Jahr 2008 noch vier Bestellungen, führt eich im Jahr 2020 insgesamt 281 Käufe durch.

Meine Bestellungen aus dem Jahr 2008Bewerbungsbücher und ein Handy! 2008 war ein klasse Jahr für mich.

Konsument und Amazon-jüngling!

Waren es in den "Anfangsjahren" noch Dinge, die ich wirklich benötigte, kaufte ich im Jahr 2020 schon viel Blödsinn. Irgendwann war der Punkt erreicht, dass ich selbst Kleinigkeiten und Dinge des täglichen Bedarfs bei Amazon bestellte. Ich bin ganz ehrlich: Heute etwas bestellt und es morgen oder spätestens übermorgen schon im Briefkasten zu haben - ein Traum! Spätestens mit der Einführung der DHL Packstationen und den Amazon Packstationen, war ich ein Amazon-Opfer.

Natürlich war mir immer bewusst, dass Amazon ein Unternehmen ist, dass sehr stark auf Profit achtet und andere Mitbewerber verdrängt. Ich wusste nicht zuletzt auch dank investigativer Journalist:innen, dass bei Amazon vieles im Argen liegt. Spätestens durch die Dokumentation von Mirko betrachtete ich Amazon kritisch. Es änderte aber nichts an meinem Konsumverhalten. Und dafür gab es drei wesentliche Gründe: 

  1. Das Angebot von Amazon ist nahezu unerschöpflich. Es gibt nichts, was es nicht gibt. Egal ob Elektronikartikel, Buch oder Kostüm für den Karneval: Amazon hat es. Und Amazon lässt es mich auch finden. Denn die Suche bei Amazon ist grandios.
  2. Die Produkte waren immer günstiger als bei anderen Seiten. Zumindest den Seiten, die ich so kannte. Egal ob Media Markt oder der Hersteller von Sportequipment: Bei Amazon gab es nahezu immer den wirklich günstigsten Preis.
  3. Der Versand! Ich hab es ja oben schon beschrieben. Am Montag bestellt, am Dienstag war der Paketbote schon da. Teilweise (während meiner Zeit in München, Köln oder Hamburg) auch schon Abends mit dem Amazonboten via Same Day.

PHPStorm und PSR-11 Container

Autovervollständigung in PHPStorm für PSR-11 Container aktivieren

phpstorm-und-psr-11-container

Das Ziel von PSR-11 besteht darin zu standardisieren, wie Frameworks und Bibliotheken einen Container verwenden um (gemeinsame) Objekte und Parameter abzurufen. Egal ob nun PHP-DI oder eine andere PSR-11-Kompatible Bibliothek genutzt wird: Es macht Spaß und hilft besseren Code zu schreiben.

Wer wie ich PHP Storm nutzt, wird sicherlich irgendwann mal den Wunsch gehabt haben, auch bei Containern die Autovervollständigung zu nutzen. Das ist relativ einfach über die Attribution im Quellcode mithilfe von PHPDoc zu realisieren. Dazu wird bei der Deklination der Variable einfach das @var Attribute auf die Klasse gesetzt:

<?php // File1.php
/** @var Psr\Log\LoggerInterface LoggerInterface **/ $loggerInterface = $container->get(\Logger::class);

Nun hatte ich jedoch den Fall, dass ich in einem anderen Datei-Scope (also innerhalb von PHP Storm in einem zweiten Dokument, welches nicht direkt, sondern nur über Composer in den PHP-Code-Scope eingebunden wird) zu arbeiten hatte. Ich hatte also die Dateien File1.php und File2.php. Und die IDE konnte nicht erkennen, dass File2.php auf das Objekt aus File1.php zurückgriff.