1 September 2020

Shattenjagen

Debugging

Heute will ich etwas über eine beliebte Beschäftigung von Softwareentwicklern schreiben: dem Schattenjagen.

Schon früh lernt man als Softwareentwickler, Fehler zuerst bei sich zu suchen, bevor man Probleme bei anderen sucht. Oft genug ist es Lernen-durch-Schmerzen. Man behauptet, eine Library oder Code eines Kollegen hat einen Bug und bekommt dann nachgewiesen, dass es der eigene Code war. Man lernt also, erstmal auszuschließen, dass es sich bei dem Problem um den eigenen Code handelt, bevor man ihn woanders sucht.

Aber manchmal (oder öfter, je nach der einen Fähigkeit) ist es halt doch ein Problem, das man nicht selbst verursacht hat. Aber bis man dahin kommt, habt man oft schon lange Zeit bei der Fehlersuche verbracht.

Mein aktuelles Beispiel war z.B. ein Fehler in Liquibase, der bei der Nutzung von mariadb eine seltsame Exception geworfen hat (https://liquibase.jira.com/browse/CORE-3457). Und ausgerechnet bei einem neuen Pet-Project hatte ich mich entschieden, eine MariaDB zu nutzen. Und lief auf den Fehler. Ich habe an meinen Changelogs für Liquibase herumgeschraubt und sie solange umgeschrieben, bis ich einfach mal ein leeres Changelog nutzte und den gleichen Fehler bekam.

Und diesmal brachte mich Google dann auf die Jira-Issue CORE-3457. Ich habe also nun frohen Mutes einen Github-Issue für Quarkus 1.7.1.Final geöffnet – der derzeit aktuellen Version. Und dann wollte ich diesen Issue auch gleich lösen und einen Pullrequest dafür öffnen – man will ja auch etwas für die OpenSource tun und nicht immer nur geiern.

Also quarkus geforkt, in die IDE geladen und dann erst gesehen, dass im Master bereits liquibase 4.0.0 genutzt wird – und der Fehler wurde bereits vor ein paar Tagen gefixt.

Und so lebte mein Bug-Issue bei Quarkus ganze 10 Minuten, bevor ich ihn wieder kleinlaut geschlossen habe. Im Moment baue ich gerade das Snapshot-Quarkus, da ich keine 20 Tage warten will, bis ich weitermachen kann mit meinem Projekt. Aber alles in allem, habe ich sicherlich 5 Stunden wieder mal einen Schatten gejagt …

Titelbild: Meme von G.L Solaria  auf dev.to

20 April 2019

Das 1. Zimmer ist fertig

viele gelbe Pöppel und in der Mitte ein einzelner blauer Pöpel

Was man immer vergisst, wenn man länger nicht umgezogen ist, ist dass es lange dauert, bis man wieder in der neuen Wohnung „angekommen“ ist. Nach dem Umzugstag stehen meistens noch längere Zeit einige Umzugskartons herum. Wenn man einen Speicher oder einen Keller hat, ist es auch nicht unüblich, dass einige wenige Kartons garnicht ausgepackt werden.

Aber auch wenn alles ausgepackt ist, braucht es einige Zeit, bis es wieder die eigene Wohnung ist. Dinge wandern erstmal, bis sie ihren Platz finden. Einige Dinge werden aussortiert, weil man sie nicht mehr braucht oder es einfach keinen Platz gibt (heutzutage wäre wohl der Ausdruck „sie machen keine Freude mehr“).

Und wenn man neben dem Umziehen und Einrichten noch arbeiten muss, kann es sein, dass man auch längere Zeit „in einer Baustelle“ wohnt. Einiges wird schneller erledigt, andere Dinge (wie bei mir einige Lampen, die wohl noch längere Zeit einfache Lampenfassungen sein werden) brauchen dafür länger.

Aber irgendwann kommt der Zeitpunkt, an dem ein Zimmer fertig ist. Zumindest für einige Zeit (das Leben besteht aus Veränderung, also ändert sich auch unsere Wohnungen ständig). Und so etwas ist heute passiert. Ein kleines aber wichtiges Zimmer ist fertiggeworden: mein Badezimmer. Es ist so ziemlich das kleinste Zimmer der Wohnung. Aber es ist meines und es ist fertig. OK, wir haben noch das große Badezimmer im 2. Stock – aber das ist das Badezimmer meiner Tochter, das ist schon gut nutzbar, wir müssen aber noch die Handtücher usw. in die Wandschränke einsortieren.

Aber das Badezimmer im 1. Stock ist nun fertig. Alles erledigt, was erledigt werden sollte. Ich bin stolz.

Oder man könnte auch einfach sagen: ich habe den Waschbeckenunterschrank aufgebaut und den Spiegelschrank aufgehängt. Aber das klingt so banal …

15 Februar 2019

Einkäufe, Einkäufe und Einkäufe

viele gelbe Pöppel und in der Mitte ein einzelner blauer Pöpel

Langsam gerate ich in einen Kaufrausch. Diverse Anschaffungen macht so ein Sesshaftwerden ja notwendig. So braucht man z.B. einen Kühlschrank, diverse Kochgerätschaften, Lebensmittel, Lampen, Teppiche, Fahrradpumpen, Ersatzbänder für das Beschriftungsgerät, technisches Equipment, um auch das letzte Eck des Hauses mit W-Lan und Internet auszustatten und und und.

Und das alles kommt entweder von Amazon (wie ein komplett neues Geschirrset, da das alte die letzten Umzüge nicht so ganz überstanden hat) und Besteck (Warum hat das alte Set 6 Messer, 4 Gabeln, 5 große und 3 kleine Löffel? Das ist eine komische Mischung).

Und zusammen mit den IKEA-Einkäufen der Kinderzimmer und des eigenen neuen Bettes und Ergänzungen sammelt sich Massen von Kartons an. Berge, ja ganze Gebirge. Und auch die Nahrungsmitteleinkäufe reißen nicht ab. Nudeln, Reis, Mehl, Zucker, Milch, ja auch Salz und andere Gewürze wollen wieder beschafft sein.

Da ich ja früher die ganze Woche im Hotel lebte und mir anfangs immer die Lebensmittel schlecht wurden, habe ich auch an den Wochenenden nicht gekocht (nunja, ich kann es sowieso nicht besonders gut). Aber nun wird wieder gekocht werden und all die kleinen Dinge, die sich sonst über längere Zeiten ansammeln, müssen wieder her. Und alles will ins Haus und in den 1. OG geschafft werden. Sowas schlaucht. Wo ich die letzten Jahre nach der Arbeit entspannt aufs Hotelzimmer bin, reicht jetzt ein Tag „leben“ ohne Arbeit (ich habe ja diese Woche wegen des Umzugs freigenommen) um mich komplett zu schlauchen.

Wie erwartet, strengt die Umgewöhnung ziemlich an. Aber bald kommen auch die positiven Seiten des häuslichen Lebens dazu. Sich unter der Woche mit Freunden treffen, die man nicht von der Arbeit kennt sondern in diesem seltsamen Umfeld von „Nachbarn“ zu finden sind z.B. – da gibt es viele neue Welten zu entdecken. To boldly go where lot of people have gone before …

2 Februar 2019

Roland wird resozialisiert

viele gelbe Pöppel und in der Mitte ein einzelner blauer Pöpel

Nach der Trennung von meiner Frau wurde ich ja von einem „stationärem“ Berater zu einem reisenden Berater (bei meinem jetzigen Arbeitgeber, der Red Hat GmbH, euphemistisch als „Road Warrior“ bezeichnet).

Aber diese Wanderjahre sind jetzt vorbei. Ich bin gerade auf dem Weg nach Bensheim, um dort die Schlüssel meiner neuen Wohnung in Empfang zu nehmen. Je näher dieser Termin rückte, wurde mir klarer, dass nun ein Lebensabschnitt zur Neige geht. Einen Abschnitt, den ich im Großen und Ganzen genossen habe.

Aber nun beginnt ein neuer Abschnitt. Und über meinen Weg zurück in ein „normales Leben“ werde ich in der nächsten Zeit schreiben. Dabei soll es kein Tagebuch werden sondern eher Schlaglichter auf die Änderungen am Leben werfen die ein solches Wurzelschlagen nach mehreren Jahren Vagabundenleben einfach mit sich bringt.

Quelle Titelbild: rgbstock.de (© Lusi – ein anders 1)

22 Oktober 2017

Danke Bahn!

Hallo Bahn!

ich schreibe Dir auf meinem Blog, da dies den gleichen Effekt haben wird wie ein Telefonat mit Deiner Hotline oder einen Brief an irgendeine Deiner Adressen. Aber ich finde, es muss mal gesagt werden, daher wähle ich diesen Weg.

Ich fahre grundsätzlich gerne mit der Bahn. Und meistens funktioniert es ja auch. Über die selten eingehaltenen Fahrpläne mecker ich nicht. Ein paar Minuten hin oder her stören mich nicht. Ich habe mich darauf eingestellt, bei Umsteigeverbindungen mindestens 20 Minuten zu reservieren. Bei Bahnhöfen wie Kassel Willhelmshöhe, bei denen ich meist von Gleis 1 auf Gleis 10 umsteigen muss mit den dortigen langen Wegen dazwischen mache ich halt 30 Minuten. Das gibt Luft für die üblichen Ungenauigkeiten der „Fahrplanutopie“, wie ein Freund den Fahrplan der DB tituliert.

Weiterlesen

28 November 2016

Buildsystem via Vagrant-Box

In manchen Java-Projekten hat man das Problem, dass Entwickler unter Windows, Linux und MacOS arbeiten. Damit stellt schon das Build-Tooling ein Problem dar. Obwohl moderne Build-Systeme meistens in der JVM laufen und damit eigentlich betriebssystemunabhängig sein sollten, stößt man oft an das Problem, dass Pfadangaben leider nicht so unabhängig sind.

Um trotzdem lokal bauen zu können, wäre ein System schön, das wie ein zentraler Build-Server fungiert. Aber halt lokal. Und hier kommt Vagrant ins Spiel …

Weiterlesen