Windows: “Autoconfiguration IPv4 Address”

Wenn ich (hier in Windows Server 2016) manuell eine statische IP konfiguriere, würde ich davon ausgehen, dass die dann auch verwendet wird. Spoiler: Wird sie nicht. Sie erscheint zwar in ipconfig /all, aber eine weitere “Autoconfiguration IPv4 Address” wird als “(Preferred)” markiert. Das “W” in WTF steht für Windows 🙄

Nun habe ich keine Ahnung, was der Grund (oder der Sinn) davon ist, und es ist mir auch egal. So deaktiviert man es:

mit <id> gleich der Nummer des gewünschten Adapters, wie sie der erste Befehl ausgibt. Eventuell deaktiviere man danach den DHCP Client Service, es sollte aber auch so gehen – und letzteres brachte bei mir andere Probleme mit sich; auf diesen Service verlassen sich doch einige weitere.

Quelle

Uhrzeit auf dem Arduino

Wer auf einem Arduino die aktuelle Uhrzeit haben möchte, hat im Wesentlichen drei Optionen. Im Folgenden ein Überblick der Vor- und Nachteile, ohne Anspruch auf Vollständigkeit.

PS: Dieser Post ist eine Karteileiche, insofern kann ich (inzwischen) fast nichts mehr dazu sagen, aber vielleicht helfen die Links ja der einen oder anderen.

DS3231

Ein DS3231-Modul ist quasi eine klassische Uhr: Quarzbasiert, batteriebetrieben, ohne Funk. Beim 3231 wacht ein Temperatursensor darüber, dass eventuelle Abweichungen kompensiert werden (im Gegensatz zum DS1302, DS1307, …). Das Buzzword zu den genannten Modulen lautet “Real Time Clock” (RTC), und es gibt sie bsplw. von Adafruit oder auf Ebay aus China.

Der Vorteil ist offensichtlich: Alles in einem. Anschließen, auslesen, fertig. Allerdings wird die Zeit nur ein mal “gestellt”, und zwar beim Kompilieren. Ist die Batterie leer, oder die Gangabweichung über die Monate (Jahre?) zu groß, oder die Zeitumstellung wird nicht berücksichtigt, oder oder oder, heißt es neu zu kompilieren. Diese Lösung scheint mir die am wenigsten autarke zu sein, deshalb habe ich mich da nicht weiter mit beschäftigt.

NTP

Die für einen Softwareentwickler naheliegende Lösung ist das Auslesen eines Zeitservers. Dazu benötigt man eine Verbindung zu so einem Server, also vermutlich LAN oder WLAN. Die kostengünstigste Version (die praktischerweise auch sehr klein ist) für den Arduino lautet ESP8266, auf Ebay bekommt man welche für << 2€ inklusive Versand aus China 😄.

ABER: Die sind schon deutlich unübersichtlicher zu verwenden! Es gibt aktuell fast zwanzig verschiedene Versionen (plus Abversionen), und sie erfordern 3,3V, während die meisten (gängigen) Arduinos auf 5V basieren. Sie sind nicht mal originär für den Arduino, sondern standalone Bausteine! Es gibt Adapter, Anleitungen, etc.; man muss sich halt dieser Komplexität bewusst sein. Außerdem vermeidet man zwar das (erneute) Stellen der Uhrzeit, ist aber abhängig von genau diesem einen WLAN mit genau diesem Passwort.

DCF77

DCF77 ist das kluge Wort für eine Funkuhr. Es gibt entsprechende Module bei Pollin, Reichelt, Conrad, ELV, … (hier ein Vergleich), leider nicht aus China 🙃. Ich habe von früher noch den hier, der kann auch 5V. Das Auslesen ist nicht trivial, dafür ist man nur so wirklich autark.

Was heißt also “nicht trivial”? Nun,

  • das Signal an sich wird sekundenweise binär übertragen, aber für die Dekodierung gibt es Libraries (aktuell drei offizielle). Man benötigt mindestens eine volle Minute, bis man ein mal alle nötigen Bits empfangen hat – und das unter Idealbedingungen!
  • die verschiedenen Module unterstützen unterschiedliche Spannungen, was man bei der Planung berücksichtigen muss.
  • um ein sekundenbasiertes Signal zuverlässig zu verarbeiten, muss man zuverlässig eine Sekunde erkennen. Dazu benötigt man einen Arduino mit Quarz (halt wie in einer Uhr), die meisten haben aber keinen. Den Pro Mini gab es in einer 5V-Version (damit fällt das Modul von Pollin schon mal raus) mit Quarz, aber den Pro Mini gibt es offiziell nicht mehr… auf Ebay gibt es aber noch welche für ebenfalls deutlich unter 2€ aus China.
  • die Module sind grundsätzlich störanfällig; die Antenne sollte waagerecht ausgerichtet sein, die Leitungen kurz, Röhrenbildschirme weit weg, Z-Dioden helfen. Das macht das Auslesen des Signals nicht schneller, und das Debugging entsprechend langwierig. Im o.g. Vergleich wurden bis zu 20 Minuten gemessen, bis das Signal erkannt war!

PS: Die Library von Udo Klein rühmt sich, besonders widerstandsfähig gegen Störsignale zu sein.

hf!

WiX: Install features options

Das Feature-Element hat einige UI-relevante Attribute, die nicht selbsterklärend sind:

  • Absent='disallow' schaltet “The feature will not be installed” aus – wie man für mandatorische Features das Dropdown insgesamt deaktiviert, weiß ich nicht. Ja, man kann das ganze Feature verstecken (Display='hidden'), aber nicht nur das Dropdown 🤷🏻‍♂️
  • AllowAdvertise='no' schaltet “The feature will be installed when needed” aus
  • “The feature and all of its subfeatures will be installed locally” (in früheren Versionen auch “Entire feature will be installed on local hard drive”) kann laut Internet nicht entfernt werden… andere Quellen legen nahe, dass man das über die Subfeatures und Komponenten steuert, aber ich hatte damit keinen Erfolg.

Gradle: Replace in Copy task

Eine Ersetzung:

Mehrere Ersetzungen:

via

Jenkins: JGit statt Git

Ich bekam einen

Selected Git installation does not exist. Using Default

, allerdings scheint es auch andere Gründe zu geben. Anyways: Die Lösung ist “JGit statt Git” zu verwenden. Das geht wie folgt:

  1. Jenkins → Manage Jenkins → Global Tool Configuration
    (bzw Jenkins → Jenkins verwalten → Konfiguration der Hilfsprogramme)
  2. Git → Delete Git
  3. Add Git → JGit

Quelle, via.

Vagrant Invalid value VBOXSVGA

VBoxManage.exe: error: Error in (line 120) — Invalid value ‘VBOXSVGA’ in Display/@controller attribute.

Kann offenbar passieren, wenn eine VM unter Linux erstellt und dann unter Windows gestartet wird. Lösung: Die .ovf-Datei der VM öffnen, und

in

ändern. Beides von hier.

Das Wetter, Hal?

😍 via, auch konfigurierbar (siehe eingangs), auch im Web (natürlich), und auch gut als bash-Alias.

Update

Auch sehr schön: WTF Util

WTF is a personal information dashboard for your terminal, developed for those who spend most of their day in the command line. […] Keep an eye on your OpsGenie schedules, Google Calendar, Git and GitHub repositories, and New Relic deployments. See who’s away in BambooHR, which Jira tickets are assigned to you, and what time it is in Barcelona. It even has weather. And clocks. And emoji.

Danke, Martin!

PowerShell: Zertifikatsprüfung deaktivieren

via. PS, in einem Vagrantfile so zu escapen – man beachte auch die Einrückungen:

HTH

Windows Server 2016 Updates hinter einem Proxy

Wenn Windows Server 2016 immer 0% Fortschritt anzeigt, dann kann man davon ausgehen, dass er nix runterlädt. Auch wenn die Liste der noch verfügbaren Updates sich dabei ständig ändert 🙄

Lösung: Offenbar laufen Windows Updates über “WinHTTP“, und selbstverständlich hat WinHTTP seine eigenen Proxy-Einstellungen. Man kann aber die IE-Einstellungen importieren:

, danach neu starten, klar. Den Rechner oder nur den Service (per PowerShell):

Ein

sollte dann die importierten Proxyeinstellungen zeigen.