Leave the World Behind.

Genau, dieser Film hier. Ich bin unentschlossen, was ich davon halten soll. Handwerklich gut gemacht (Licht, Kamera, Ton, Musik etc.) lässt er mich doch etwas “unbefriedigt” zurück. Meinetwegen hätte er etwas schneller getaktet sein können. Dass man bis zum Ende nicht erfährt, was eigentlich passiert ist, lässt zwar Raum für Spekulation und Gedankenspiele, aber irgendwie will sich (bei mir) hier keine große Inspiration einstellen.

Ich bin wirklich unschlüssig. Nein, der Film ist nicht schlecht, keineswegs, aber ich hätte mir etwas mehr erwartet als ein “Krisen-Psychogram”. Trotzdem sehenswert.

Mattermost im Tor-Netzwerk hinter einem nginx Reverse-Proxy

Richtig, ich betreibe eine kleine Mattermost-Instanz zum Austausch von Gedanken im Security-Umfeld. Bevor jemand fragt: Wir tragen alle weiße Hüte.

Jedenfalls: Meine Mattermost-Instanz im regulären Internet läuft fein, auch die Tor-Config war rasch erledigt, allerdings bin ich dann über diesen Fehler gestolpert: “Error: Please check connection, Mattermost unreachable. If issue persists, ask administrator to check WebSocket port”

Nach einer kurzen Recherche war das Problem rasch gefunden, mein davor geschnallter Reverse-Proxy (nginx) hatte ein kleines Problem mit den Websockets.

Wie auch immer, hier ist eine funktionierende nginx-Config (Keine Garantien auf irgendwas, das ist ein Experiment.), vielleicht hilft das mal jemandem von euch.

upstream backend-onion {
  # mattermost listening port is 8065 in my config
  server localhost:8065;
  keepalive 32;
}

server {
  # 8080 is the tor hidden service port in my config
  listen 127.0.0.1:8080 default_server;
  server_name localhost;
  port_in_redirect off;

  location = /favicon.ico {
    log_not_found off;
    access_log off;
  }

  location ~ /api/v[0-9]+/(users/)?websocket$ {
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    client_max_body_size 50M;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Frame-Options SAMEORIGIN;
    proxy_set_header CLIENT_HOST $remote_addr;
    proxy_set_header Origin "";
    proxy_buffers 256 16k;
    proxy_buffer_size 16k;
    client_body_timeout 60;
    send_timeout 300;
    lingering_timeout 5;
    proxy_connect_timeout 90;
    proxy_send_timeout 300;
    proxy_read_timeout 90s;
    proxy_http_version 1.1;
    proxy_pass http://backend-onion;
  }

  location / {
    client_max_body_size 50M;
    proxy_set_header Connection "";
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Frame-Options SAMEORIGIN;
    proxy_buffers 256 16k;
    proxy_buffer_size 16k;
    proxy_read_timeout 600s;
    proxy_cache mattermost_cache;
    proxy_cache_revalidate on;
    proxy_cache_min_uses 2;
    proxy_cache_use_stale timeout;
    proxy_cache_lock on;
    proxy_http_version 1.1;
    proxy_pass http://backend-onion;
  }
}

Warum ich Excel hasse, Teil 45643

Die einfachsten Dinge, wie die Differenz zwischen Datum A und Datum B zu berechnen, verkommen zur völligen Clown-Show, wenn sogar die Beispiele von Microsoft selbst falsch sind.

Quelle ist dieser Link, siehe auch oben:

Richtig ist allerdings dieses Format, mit Strichpunkten statt Kommas:

Manchmal fragt man sich schon, was das alles soll.

Aber wie ich immer sage:
90% der Leute zeichnen mit Excel nur Kasterl, mehr nicht. 9,9% verwenden die Grundlagen (und scheitern an falscher Doku von Microsoft selbst…) und 0,1% pflegen seit Excel 1.0 ein 500MB Spreadsheet mit einer Gazillion Makros und steuern darüber ein Unternehmen.

Pick your posion.