Montag, 30. März 2020

Spring Boot baut nicht auf Gitlab.com in der Gitlab-CI

Problem: Die Gitlab-CI auf Gitlab.com läuft beim Build eines Spring Boot 2.2.x Projekts in folgenden Fehler: 

 Plugin [id: 'org.springframework.boot', version: '2.2.6.RELEASE'] was not found in any of the following sources:
 - Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
 - Plugin Repositories (could not resolve plugin artifact 'org.springframework.boot:org.springframework.boot.gradle.plugin:2.2.6.RELEASE')
   Searched in the following repositories:
     Gradle Central Plugin Repository


Lösung: Die Repositories in der Datei "build.gradle" muss um folgende Einträge ergänzt werden:

repositories {
    jcenter()
    mavenCentral()
    maven {
        url "https://plugins.gradle.org/m2/"    }
}

Unter MacOS ein mit SDKMAN installiertes JDK in IntelliJ integrieren

Problem: Wenn man unter MacOS seine Java SDKs mittels SDKMAN verwaltet, dann werden die mittels "sdk install java VERSION" installierten Java Versionen in der Dateiverwaltung nicht angezeigt. Da die Java Versionen vom SDKMAN nicht unter dem Standardverzeichnis "/Library/Java/JavaVirtualMachines/" abgelegt werden, sondern in einem versteckten Verzeichnis im eigenen Home unter "~/.sdkman/candidates/java/", ist eine Auswahl über die sich öffnende Dateiverwaltung in IntelliJ nicht sichtbar.



Lösung: Mit der Tastenkombination " CMD + SHIFT + . " werden die unsichtbaren Verzeichnisse sichtbar und das gewünschte JDK kann daraufhin ausgewählt werden.



Freitag, 20. März 2020

DomainDriven Design - Überblick (Präsentation)

IntelliJ & MacOS - Terminal öffnet sich mit Tastenkombination CMD-Shift-A (Find Actions)

Problem: Bei der Arbeit mit IntelliJ der Version 2019.3.x öffnet sich ein Terminal, wenn man in der IDE die Tastenkombination CMD-Shift-A (Find Actions) drückt.


Auslöser: Bei MacOS ist diese Tastenkombination bereits belegt. Unter dem deutschsprachigen Menü unter Systemeinstellungen -> Tastatur -> Kurzbefehle -> Dienste findet man den Eintrag "man-Seitenindex im...rminal durchsuchen".



Lösung: Diesen Eintrag deaktivieren.



Hintergrund: https://youtrack.jetbrains.com/issue/IDEA-209726?_ga=2.241101827.1264794351.1584727418-145849010.1582131891

Sonntag, 19. Januar 2020

iPad Art - Clean Code

In den Softwareentwicklungsprojekten ist Code-Qualität und Craftsmanship immer wieder ein Thema, mit dem man sich auf die eine oder andere Weise auseinandersetzen muss. Während in den Projekten die einen Softwareentwickler sehr daran interessiert sind die Qualität der Software zu verbessern, sind Andere entweder unmotiviert oder es fehlt ihnen an den dafür notwendigen Kenntnissen.

So oder so, ist viel Anstrengung auf zwischenmenschlicher Ebene erforderlich, um im Team ein gemeinsames Verständnis von Clean Code aufzubauen. Auch wenn eigentlich alle beteiligten Softwareentwickler bereits etwas von Clean Code gehört haben und sie regelmässig über den schlechten Code in ihrem Projekt fluchen, scheint es ihnen schwer zu fallen selber besseren Code zu schreiben.

Meiner Erfahrung nach, empfinden die Meisten es einfach als zu anstrengend, ihren eigenen Code und ihre Methodik in Frage zu stellen. Da er nach vielen Debug-Zyklen nun endlich funktioniert, ist es vermeintlich übertrieben noch mehr Zeit in die Implementierung zu investieren. Man ist froh sich endlich um andere wichtige Dinge kümmern zu können. Doch leider, führt eine undisziplinierte Vorgehensweise bei der Umsetzung so gut wie immer zu einer steten Verschlechterung der Wartbarkeit eines Softwareprodukts.

Diese Entwicklung habe ich versucht in dem folgenden Bild auszudrücken. Da Bilder dem Menschen einen Sachverhalt am besten näher bringen, habe ich angefangen einen kleinen Katalog mit den typischen Problemen in der Softwareentwicklung zu erstellen. Anhand tatsächlich existierender Code Smells, möchte ich das Thema verständlicher und greifbarer machen. Ein solches Vorgehen funktioniert dann am besten, wenn die Entwickler den Code Smell in ihrer Code-Basis wieder erkennen.



Dieses Bild soll ein erster Wurf sein und dient gleichzeitig als eine Einleitung in das Thema. Bei der Erstellung kam GoodNotes zum Einsatz.


- Update - 20.01.2020 -






Mittwoch, 10. Juli 2019

Eine andere Art von Quelltext - Gedichte

Es war einmal vor langer Zeit in einem nicht ganz so weit entferntem Dorf. Da war ich in Jemandem verliebt. Doch leider, hatte sie nicht die gleichen Gefühle für mich. In jener Zeit habe ich zwei kleine Gedichte verfasst, die seit dem in meinem Onlinespeicher vor sich her schlummern. Da sie im Nirvana verschwinden würden, stelle ich sie hier lieber Jedem zur freien Verfügung.

Sehnsucht nach Dir (27.12.1998)

Die Welt so Groß mit all seinen Dingen zu entdecken und lernen es gibt. Bringt eines unter all diesen mein Herz zum Singen, so keinen Halt es mehr für meines gibt.

Ist doch etwas unglaublich schönes, dieses Gefühl von Begehren. Kann es jedoch unbefreit und unerwidert einem das Herz verzehren.

Doch nicht allein das Herz istʻs das fühlt. So auch all die anderen Teile meines Selbst empfinden. Es sich Stück für Stück durch meinen Körper wühlt. Auf der Suche nach einem Ziel, ohne es zu finden.

Körper und Geist brennen vor Verlangen und entziehen sich der Kontrolle. Hilflos da liegend, krampfhaft versuchend diese zurück zu erlangen. Hat es doch keinen Sinn, so ich mich muss fügen in meine Rolle.

Allein wie ein Kind ich mich fühle. Ist doch Niemand hier mit dem ich kann teilen.
Weit entfernt die Erfüllung meiner Sehnsucht. Wird sie doch nicht auf Wunsch zu mir eilen.

Um das zu tun, wovon ich geträumt. Sie zu halten in meinen Armen, umschlungen von den ihren.
Dann ist sie mein, wie so oft geträumt. Macht sie sich mir zum Geschenk, zu lieben mich,
wie sonst keinen von den ihren.

Wäre dies die Erfüllung meiner Träume, zeigt doch die Realität mir grausam den Weg zurück.
Um ihn zu gehen, ich mich muss fügen in ein Schicksal, ich kann nicht finden mein größtes Glück.

Die Verarbeitung (08.04.1999)

Es kommt einem vor als währ man allein. Niemand es gibt, der schon einmal das Selbe erlebt. Ist es doch trotzdem nur der Schein. Allein nur der ist, der in solch Abhängigkeit lebt.

Denn wenn der Mensch den man scheinbar braucht, einem nicht das gibt wonach das Herz verlangt.
Man nicht darf der sein der um Erfüllung bangt. Da sonst des Erfüllungʻs Sinn im Leben verraucht.

Donnerstag, 6. Juni 2019

Apache Zeppelin Tutorial



Wer kennt es nicht: Man möchte eine Technologie ausprobieren, scheitert jedoch schon bei den ersten Schritten an den technischen Abhängigkeiten?!

Wenn ich persönlich an einer Stelle nicht voran komme, dann schaue ich mich im Netz nach diesem Problemen und eventuellen Lösungen um. Ich spare mir Zeit und Nerven, wenn Jemand bereits ein solches Problem hatte und er zudem eine mögliche Lösung beschreibt. Besonders freue ich mich, wenn sich dieser Jemand auch noch die Mühe gemacht hat, ein lauffähiges Projekt für die Problemstellung und -lösung aufzusetzen.


Bist Du vielleicht gerade auf der Suche nach einer vorkonfigurierten und lauffähigen Zeppelin Installation? Mit diversen externen Systemen, welche in Zeppelin eingebunden sind, um Daten einzuspielen und ausgeben zu können? Vor kurzem war ich auf der Suche nach einem solchen Beispielprojekt. Da ich nichts passendes fand, habe ich eines aufgesetzt.

Dieses Projekt stelle ich hier als zur freien Verwenung zur Verfügung. Es handelt sich um eine auf Docker basierende Zeppelin Instanz mit diversen Datenbanken und Dateispeicher, welche lokal durch Docker Compose betrieben werden. Mit diesem Projekt kannst Du sofort loslegen und Zeppelin ausprobieren.