Composer Update Error – Symfony 3.4 LTS

Heute stieß ich bei einem Symfony 3.4 Projekt auf ein Update Problem mit dem Composer. Die Fehlermeldung war wie folgt:

[ErrorException]
Declaration of Symfony\Flex\ParallelDownloader::getRemoteContents($originUrl, $fileUrl, $context) should be compatible with Composer\Util\RemoteFilesystem::getRemoteContents($ori  
  ginUrl, $fileUrl, $context, ?array &$responseHeaders = NULL)

Nach einer kurzen Recherche zu dem Thema bin ich auf den Issue #406 im Flex Projekt von Symfony gestoßen. Hier geht es genau um die Problematik. Die Lösung ist relativ einfach. Bevor „composer update“ wieder funktioniert, muss zunächst das Symfony Flex Paket aktualisiert werden – und zwar ohne weitere Plugins oder das Ausführen von weiteren Befehlen.

composer update symfony/flex --no-plugins --no-scripts

Anschließend konnte ich wieder wie gewohnt Composer verwenden.

AWS EC2 Hostname nach Neustart behalten

Wenn man zum Beispiel auf einer Ubuntu EC2 Instanz den Hostname geändert hat, kann es sehr wahrscheinlich sein, dass nach einem Neustart der Instanz wieder der ursprüngliche Hostname verwendet wird. Um dieses Verhalten zu unterbinden, gibt es eine einfach Lösung.

/etc/cloud/cloud.cfg.d/

In diesem Verzeichnis muss eine neue Datei mit dem Namen „99_hostname.cfg“ erstellt werden. Der Inhalt ist relativ simpel. Es reicht lediglich eine Zeile aus um der Instanz mitzuteilen, dass die vorhandene (eigene) Konfiguration des Hostname beibehalten werden soll:

preserve_hostname: true

AWS hostalive mit Icinga ohne Ping, aber mit check_tcp

Um einen Host bei Amazon Web Services per Icinga zu überwachen, kann man leider nicht auf den normalen „hostalive“ von Icinga zurückgreifen. Dieser „pingt“ den Server regelmäßig an und meldet sich entsprechend, wenn der Server nicht erwartungsgemäß antwortet.

Auf Amazon EC2 oder auch Lightsail Servern werden Ping-Anfragen erstmal grundsätzlich aus Sicherheitsgründen geblockt. Auf EC2 Servern lassen sich die sogenannten ECHO-Requests (ICMP Requests) zum Glück freischalten –  auf den Lightsail Servern geht das leider nicht.

Um dennoch die Erreichbarkeit überprüfen zu können, kann man bei Icinga anstatt der standardmäßig eingestellten „hostalive“ Abfrage auch einen eigenen Check verwenden, der z.B. die Erreichbarkeit des Hosts per TCP/IP auf einem bestimmten Port (z.B. 80 – WWW) testet.

Dafür benötigt man einen neuen Check, den wir in diesem Fall einfach „check_tcp“ nennen und folgendermaßen erstellen:

Check Command

In der „commands.conf“ erstellen wir einen neuen Befehl:

object CheckCommand "check_tcp" {
    import "plugin-check-command"
    command = [ PluginDir + "/check_tcp" ]
 
    arguments = {
        "-p" = "$tcp_port$"
        "-H" = "$tcp_address$"
    }
}

Der Befehl benutzt die „check_tcp“ aus den Nagios Plugins und erwartet, dass im Host die Variablen „tcp_port“ und „tcp_address“ definiert wurden.

Anpassungen im Host Object

Damit anstatt des „hostalive“ jetzt der neue Befehl verwendet wird, muss im  Host Object der „check_command“ von „hostalive“ auf „check_tcp“ geändert werden und zusätzlich die beiden o.g. Variablen definiert werden. Vollständig sieht das dann so aus:

object Host "www.domain.de" {
    import "generic-host"
 
    check_command = "check_tcp"
    vars.tcp_address = "www.domain.de"
    vars.tcp_port = "80"
    address = "1.2.3.4"
 
    vars.os = "Linux"
 
    [...]
}

Nach einem Reload sollte der neue „check_command“ verwendet werden. Trotzdem erscheint unser Host weiterhin als „Critical“ weil nicht erreichbar. Das liegt daran, dass Icinga trotzdem einen Ping an den Host sendet und keine Antwort zurückbekommt. Um den Ping komplett abzuschalten, muss eine Anpassung vorgenommen werden, die in folgendem Artikel erklärt wird: 

Icinga Ping-Check deaktivieren

Icinga Ping-Check deaktivieren

Um den Ping-Test in einem Icinga Host zu deaktivieren, muss eine kleine Anpassung in der „services.conf“ vorgenommen werden, die wiederum dazu führt, dass man in einem Host den Ping-Check deaktivieren kann.

services.conf anpassen

apply Service "ping4" {
    import "generic-service"
 
    check_command = "ping4"
 
    ignore where host.vars.ping == "no"
    assign where host.address
}
 
apply Service "ping6" {
    import "generic-service"
 
    check_command = "ping6"
 
    ignore where host.vars.ping == "no"
    assign where host.address6
}

Wichtig ist hier die jeweils die Zeile:

ignore where host.vars.ping == "no"

Damit erreicht man, dass in einem Host, das die Variable vars.ping = „no“ definiert, kein Ping-Check durchgeführt wird.

SSH Keys – Windows Subsystem for Linux

Um bereits vorhandene SSH-Keys eines Windows Host-Systems in einer WSL Instanz nutzen zu können, reicht es aus, den Private und Public Key vom Host-System in das Home-Verzeichnis des WSL Benutzers zu kopieren.

Dies geschieht mit dem folgenden Befehl (angenommen das Benutzer-Verzeichnis liegt unter C:\Users\USERNAME):

cp /mnt/c/Users/USERNAME/.ssh/{id_rsa,id_rsa.pub} ~/.ssh/ && chmod 600 ~/.ssh/id_rsa

Anschließend steht der Key wie gewohnt der WSL Instanz zur Verfügung.

Ticwatch S & E

Mobvoi, dem ein oder anderen ist das Unternehmen ein Begriff, aber die meisten dürften es nicht auf Anhieb kennen. Das Unternehmen wurde 2012 von Ex-Google Mitarbeitern gegründet und hat mittlerweile über 400 Mitarbeiter mit Hauptsitz in Peking. Zu den Kernkompetenzen des Unternehmens zählen KI-Technologien und wie diese die Mensch-Maschine-Interaktionen verbessern können. Darüber hinaus entwickelt Mobvoi aber auch Geräte für Endkunden wie die Ticwatch (Smartwatch, mittlerweile in der 3. Generation) oder den TicHome Mini (smarter Lautsprecher).

Die neuste Version der Ticwatch heißt nicht etwa Ticwatch 3 sondern hört auf die Namen Ticwatch S (Sport) sowie Ticwatch E (Express), da es zwei unterschiedliche Modelle sind. Die S Variante legt den Fokus auf sportliche Aktivitäten und hat zu dem auch noch GPS-Antennen im Armband verbaut während die Ticwatch S eher als Smartwatch für den Alltag bezeichnet werden kann.

Finanziert wurden beide Uhren über eine Kickstarter Kampagne, die am 18.08.2017 endete. Ich bin einer der letzten Unterstützer gewesen, da ich erst kurz vor Ende der Kampagne auf die Uhren aufmerksam geworden bin.

Seit dem die Kampagne beendet ist, informiert Mobvoi regelmäßig alle Unterstützer über die aktuellen Geschehnisse rund um die Produktion und die Entwicklung der Software (die Uhr basiert auf Android Wear 2).

Genau 3 Monate nach dem Ende der Kampagne, sollen die ersten Uhren bei den Unterstützern ankommen. Bei Facebook kursieren schon erste Fotos von Uhren, die bei Unterstützern angekommen sind. Mobvoi hat bereits eine Seite eingerichtet, über die man den Status seiner Bestellung abfragen kann. Leider habe ich noch keine Trackingnummer, aber das sollte sich spätestens in den nächsten Tagen ändern.

Änderung des Tastaturlayouts per Hotkey unterbinden unter Windows

Es gibt unter Windows den Hotkey [ALT] + [l. Shift], mit dem das Tastaturlayout z.B. auf Englisch geändert werden kann. Dann sind u.a. die Y- und Z-Taste vertauscht.

Leider kommt es in Spielen wie z.B. Playerunknown’s Battlegrounds schnell mal dazu, dass man diese Funktion ungewollt aktiviert. Und zwar wenn man beim Sprinten zusätzlich die [ALT]-Taste drückt um sich umzusehen. Prompt hat man unbemerkt auf das englische Layout gewechselt und kann sich plötzlich nicht mehr hinlegen -> Y- und Z-Taste vertauscht.

Zum Glück kann man diese Funktion unter Windows in einem sehr versteckten Untermenü abschalten. Auf dem folgenden Screenshot ist der Weg zur Einstellung dargestellt.

Steam Update eines Spiels erzwingen

Manchmal dauert es etwas länger, bis der Steam Client ein bereits verfügbares Update für ein Spiel automatisch herunterlädt bzw. installiert. Diesen Vorgang kann man manuell starten, indem man wie folgt vorgeht:

Rechtsklick auf das Spiel in der Bibliothek –> Eigenschaften auswählen –> Im neuen Fenster den Reiter Lokale Dateien anklicken –> Button Dateien auf Fehler überprüfen anklicken.

Anschließend sollte Steam eine kurze Überprüfung der Spieldateien durchführen und dann feststellen, dass ein Update verfügbar ist und dieses herunterladen.

CS:GO Road to Silver – How to Derank – Ein Erfahrungsbericht

Deranking bei Counter Strike Global Offensive. Dafür gibt es viele Gründe und ich möchte hier meine Erfahrungen festhalten, wie ich einen „frischen Account“ von Gold Nova 3 auf Silver 1 gebracht habe. „CS:GO Road to Silver – How to Derank – Ein Erfahrungsbericht“ weiterlesen

Android 8.0 Oreo – OTA Update ist verfügbar

Heute morgen hat mich das OTA Update für das Google Pixel auf Android 8.0 Oreo erreicht. In den letzten Tagen habe ich regelmäßig über die Einstellungen auf verfügbare Systemupdates prüfen lassen und plötzlich war es dann heute morgen um ca. 8:45 verfügbar. Das Update ist ca. 940 MB groß.

Beim Starten merkt man direkt, dass sich die Startzeit deutlich verkürzt. Das Ambient Display zeigt die Benachrichtigungen nun größer und mit einem farblichen Akzent an. Direkt aufgefallen ist mir ein Icon in der Statusleiste, dass auf Apps die im Hintergrund laufen aufmerksam macht – z.B. WhatsApp 🙂 Da kann man hoffentlich noch was dran ändern…