Tag 84/2016: How to deny requests by filename, extension and patterns with nginx in a comfortably bureaucratic manner

In a current setup where nginx acts as a reverse proxy to some Apaches I want to deny access to some useless Flotsam & Jetsam files.

What I not want is to craft wonderful regular expressions that suffice type 3 of a Chomsky-Hierarchy while learning about Pumping-Lemmata, albeit that sounds very alluring for an annoyingly hot summerday later this year (Todo).

So in order to keep my various location directives specific as they are I create a map like this (example):

map $uri $reqhide {
 default 0;
 "~*robots.txt$" 0;
 "~*\.(md|txt)$" 1;
 "~*liesmich\.html$" 1;
}

This map has to be created in the http context of a config file and can then be used in if-conditions within location blocks. It uses the special parameter default to set the variable $reqhide in case of any non-matching pattern. If I want to hide files later on like all .txt files I set $reqhide to 1. A request for „robots.txt“ is caught by the first matching regular expression, so a request for „foo.txt“ is caught by the second that goes for all .txt files. The complete order of priority is explained in the map-module-docs.

As this wonderfully unknown (to many) article on nginx.com notes, the only 100% safe things in if conditions are return and rewrite statements.

So I just do something like

location / {
  [...]
  if ($reqhide) {
    return 404;
  }
  [...]
}

to make the response a 404-File-not-found lie.

Tag 71/2016: Traust du dich, deine Fahrradklingel zu benutzen?

Wer häufig mit dem Rad unterwegs ist, sagen wir, so häufig, dass sie den aktuellen Benzin- oder Diesel- oder Strompreis nicht kennt, wird dabei auch hin und wieder von anderen Radfahrerinnen überholt.

In vermutlich 99 von 100 Fällen wird dabei die überholende Radfahrerin nicht die zu überholende Radfahrerin durch Klingeln mit der Fahrradklingel warnen. Eine Fahrradklingel ist ein Signalgerät, um sich bei Gefahren akustisch durch Schallzeichen bemerkbar zu machen.

Meine statistisch irrelevante Umfrage hat ergeben, dass die Mehrheit der Nichtklinglerinnen denkt, die zu überholende Radfahrerin würde das Klingeln als aggressiven Akt werten und es deshalb bewusst unterlassen.

Kombiniert mit dem Glauben, dass Verkehrsteilnehmerinnen niemals spontan ihre Spur wechseln, ist das bei vielen engen Fahrradwegen usw. natürlich besonders problematisch.

Benutzt Du Deine Fahrradklingel oder traust Du Dich auch nicht?

Tag 64/2016: Busse überholen

Ich setze große Hoffnungen in autonomes Fahren, Level 5, gemäß Europa/USA-Klassifizierung, vor allem, wenn ich mir ansehe, was fast täglich allein an meiner Lieblingsbushaltestelle passiert. Geduld ist nicht so die Stärke von ca. 70% der Autofahrer, die ca. 30-45 Sekunden warten müssen, bis der Bus wieder weiterfährt.

Heute stand da der Bus, hinter diesem zwei Autos, die Fahrer/innen warteten ausnahmsweise. Sinnvoll, denn die Straße macht dort eine leichte Kurve, was die Situation etwas unübersichtlich macht.

Als dann der Bus anfährt, überholt von ganz hinten ein Paketdienst-Fahrer mit seinem Transporter beide Autos und den Bus. In der Kurve. Und nun muss der Paketdiensttransporterfahrer auch noch beschleunigen, denn Autos und Bus werden ja auch immer schneller. In der Kurve, jederzeit kann Gegenverkehr unvermittelt auftauchen. Und, ach ja, Tempo 30 ist auf der Straße auch noch einzuhalten. Bzw. wäre einzuhalten.

Für autonomes Fahren diskutiert man ja gerne ethische Dilemmata (soll das Fahrzeug das kleine Kind anfahren, das zwischen geparkten Autos hervorhüpft oder in die Gegenspur ausweichen und in ein Auto mit 4 Personen rammen?).

Dabei gibt es unsagbar viele Momente mehr auf den Straßen, in denen 2-Tonnen-Fahrzeuge von charakterlich fahruntauglichen $*+!§$@ in unnötigen Manövern gelenkt werden. Ein Dilemma wirkt da fast wie ein Luxusproblem.

Tag 50/2016: Alles Gute zum Geburtstag, J. J.

Jemand aus meinen Xing-Kontakten, J., feiert heute seinen 50. Geburtstag. Passend, am Tag Nr. 50, deshalb sei ihm dieser Post gewidmet. Ich hab ihm über Xing gratuliert, was üblicherweise bedeutet, dass er die Nachricht innerhalb von 3-18 Tagen sehen wird. Ist so ein Business-Netzwerk-Ding, diese Geschwindigkeit.

Sein Vorname lautet „J“, was mich daran erinnert, dass ich vor ein paar Jahren von jemand öfters Mails bekommen habe, in denen beispielsweise „Ratzi-Fatzi J“ stand. Oder „Bis bald J“. Oder nur „J“, am Ende der Mail. Irgendwann kam ich dann drauf, dass ich, hätte ich die Nachricht in HTML-Darstellung betrachtet und den Font nachgeladen, das „J“ als Smiley erkannt hätte.

In diesem Sinne: Alles Gute zum Geburtstag, J.

J

Tag 39/2016: Es regnet gerade

Es regnet. dit reën. bie shi. هطل المطر. անձրեւ է գալիս. bu yağış. euria. বৃষ্টি. pada kiša. вали. ဒါကြောင့်မိုးရွာ. kini ulan. mvula. 下雨. det regner. it’s raining. pluvas. sajab. sataa. il pleut. chove. წვიმს. βρέχει. તે વરસાદ. li lapli. Ana ruwa. יורד גשם. यह बारिश. nws los nag. Mmiri na-ezo. hujan turun. rains. það rignir. piove. 雨が降ります. udan. עס ריינז. ಮಳೆಯಾದಾಗ. жаңбыр жауғанда. plou. វាភ្លៀង. 그것은 비가. pada kiša. ມັນຝົນຕົກ. pluit. līst lietus. lyja. മഴ. avy ny orana. hujan. tkun ix-xita. marangai i te reira. तो पावसाळा. врне. энэ нь бороо. यो वर्षा. het regent. det regner. از آن باران. pada. chove. ਇਸ ਨੂੰ ਬਾਰਿਸ਼. plouă. идет дождь. det regnar. пада киша. e lipula. එය වහිනවා. prší. dežuje. uu roobku da’o. llueve. mvua. turun hujan. борон меборад. umuulan. மழை பெய்யும். అది వర్షాలు. ฝนตก. prší. yağmur yağar. йде дощ. esik. یہ بارش. Yomg’ir. trời mưa. mae’n bwrw glaw. ідзе дождж. o ojo. lina.

Mal ehrlich, manche Sprachen hat Google Translate doch selbst erfunden 🙂

Tag 32/2016: Warteschlangen abarbeiten

Beim Dateisystem-Defragmentieren zusehen ist gewinnbringender als beim FTP-Warteschlangen-abarbeiten.

Irgendwie hat man nach dem Defragmentieren das Gefühl, die Arbeit war sinnvoll. Man hätte ein Gleichgewicht wiederhergestellt. Die Messer zu neuer Schärfe geschliffen. Die Hauswand mit frischem Putz versehen. Den Motor getuned. Sowas.

Mit dem Datei-Kopieren per FTP hat man natürlich auch einen Zweck verfolgt und ein Ziel erreicht, aber halt auf die uncoolste Art & Weise. Kein STDIN-STDOUT-Gepfeife über einen sicheren Tunnel mit Kompression oder wenigstens nur eine riesige Datei kopieren und am anderen Ende entpacken. Nein. Wenn die Server nur FTP anbieten, dann wollen die 80er ihre Entschleunigung zurück.

Insgesamt 70.350 Dateien zuerst von A nach B und dann von B nach C kopiert, von 13:30 Uhr bis 19:irgendwas. Immerhin war der verwendete FTP-Client so freundlich, die Geschwindigkeit exakt in Kibibyte (KiB/s) anzuzeigen und nicht in Kilobyte. Wenn schon langsam, dann wenigstens exakt.

Tag 26/2016: Umzüge, Minimalismus und Loslassenkönnen

Was man vor einem Umzug loswerden kann, muss man nicht mitnehmen. Also: Aufräumen. Ordnung schaffen.

Überlegen, ob ein Ding (im Folgenden: „Ding“) noch gebraucht wird oder nicht. Bin ich gesetzlich verpflichtet, Ding aufzuheben? Nein? Gut. Ist Ding wertvoll, würde ich es bei Eb*y verkaufen können? Nein? Gut. War es ein Geschenk, muss ich es 1x im Jahr aus dem Keller holen und gut sichtbar im Zimmer platzieren? Nein? Gut.

Eigentlich schon 3x gut. Aber Ding könnte vielleicht doch noch einmal wichtig werden und eigentlich nimmt es ja gar nicht so viel Platz ein und… und… – machen wir doch den Schachtel-Trick: Packen wir Ding weg und wenn wir es 4 Wochen lang nicht herausholen müssen werfen wir es weg.

So gesehen bin ich gespannt, was im noch vom letzten Umzug rumstehenden und niemals geöffneten Umzugskarton drinnen ist, der mit nur einem Wort beschriftet ist: ‚Mist‘.