Namen von Variablen

Viel zu schnell hat man sich mal vertippt bei der Referenz zu einer Variablen. Wenn dann eine andere Variable fast genauso benannt wurde, ist der Fehler kaum zu finden:

for (TestMap testMap : this.testMaps)
{
    System.out.println(testMaps.toString());
}

Das eine gemeine Plural s hat sich also reingemogelt. Dem Compiler ist das egal. Gemeint war aber eher dieser Aufruf:

for (TestMap testMap : this.testMaps)
{
    System.out.println(testMap.toString());
}

Der Unterschied ist kaum merklich. Also hätte man besser etwas längere Namen genutzt, die sich gleich in mehr Zeichen unterscheiden:

for (TestMap oneTestMap : this.allTestMaps)
{
    System.out.println(oneTestMap.toString());
}

So sollte es besser lesbar sein.

Java 11 Migration

So ein Sprung von Java 1.8 zu Java 11 macht schon einige kleinere Probleme. Die eigene Programmierung ist da noch das kleinste Problem, aber der CI Stack mit Code Coverage und Änderungen im Bytecode bringt einen Haufen zu aktualisierender Maven Pakete mit sich. Und da kaum jemand an einen Änderungsarmen Updatepfad denkt, muss man sich erst durch viele Changelogs arbeiten.

Aber nun läuft das JaStaCry Projekt wieder stabil, alles im grünen Bereich und Java 11 schnuckelt selbst im Jenkins ohne Probleme.

Update Freuden

Ja, es gibt sie wirklich: Die updates die einfach funktionieren. Dazu gehört das heute vollzogene Jira update auf die 7.13, denn ohne eigenes Ticketsystem ist man ja kein vollständiger Entwickler.

Und dieses Tool ist auch das einzige welches unter einem CentOS laufen darf, alle anderen werden brav in debian oder meinetwegen auch mal Ubuntu Server gepflegt.

Das Code Review Trüffelschwein

Irgendwie habe ich eine Nase für anrüchige Programmierung. Bei vielen Projekten findet sich mindestens mal eine Differenz zwischen den Requirements und der letztlichen Ausarbeitung im Sourcecode. Die Bewertung ob das nun stört ist eine andere Sache. Aber wenn zum Beispiel die Abfrage von Returncodes vorgeschrieben ist, dann sollten die halt auch überall vorhanden sein.

Leider macht sich so ein Trüffelschwein damit auch zunehmend unbeliebt bei den Entwicklern. Und das Timing von Projekten steht dem auch meistens entgegen. Aber Ordnung muss sein!

ESXi update

Ganz tapfere machen Updates freihändig. Was soll schon schiefgehen?

Aber im Ernst: Normalerweise hätte es nun erst mal ein komplettes Backup gebraucht. Aber da dies der eigene, private VMware Server ist, einfach mal von 6.5 nach 6.7 ein update gefahren. Und: Es läuft!

Einzig der erste Versuch lief auf eine angeblich zu volle Platte als Fehler. Bullshit! Es war nur die /tmp Partition voll und da die als Ramdisk zu laufen scheint, war das aktivieren vom Swapping schon ausreichend für ein update. Einfach via SSH auf die Kiste drauf und das neueste vom neuen installiert:

esxcli software profile update -p ESXi-6.7.0-20181104001-standard -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml

Programmierung von Spannungen

Auch was spannendes: Wenn Software in Hardware getestet werden will und man die Programmierung mit programmierter Spannung unter oder über die Grenzen treibt.

Nach auch nur einem kurzen Moment hat man ein buntes Tagwerk an Kabeln auf dem Tisch verteilt.

Wichtig dabei: Formelsammlung für Spannungsteiler sollte parat liegen!