I'm a coder - Java ist so böse...
Ich bin Softwareentwickler und ich nutze Java. Laut Twitter müsste ich mich nun schlecht fühlen, doch überraschenderweise ist dies gar nicht der Fall. Doch warum schreibe ich so etwas überhaupt? Im Rahmen der als Log4shell open_in_new bekannten Sicherheitslücke, in der weit verbreiteten Java Library Apache Log4j 2 open_in_new, gab es natürlich auch diverse verallgemeinerte undifferenzierte Aufrufe Java zu verteufeln. Dabei will ich vorab klarstellen das Java bei weitem nicht das Allheilmittel für die Probleme der Softwarewelt ist, aber eben auch nicht die grundlegende Quelle all dieser.
I'm a coder - Server sagt: Nein!
In der Softwareentwicklung und auch als Serverbetreiber ist das Thema Sicherheit natürlich allgegenwärtig. Sicherheitsmaßnahmen wollen eingerichtet und getestet werden. Dafür hat man verschiedene Wege und nachdem die initialen Tests bestanden sind, läuft dann meist alles im alltäglichen Flow weiter.
Zusätzlich zu diesen Abläufen testete ich gestern eher unfreiwillig eine der Sicherheitsmaßnahmen meines Servers. Es geht um Fail2Ban open_in_new, ein Tool welches gegen Brute-Force Angriffe auf Logins und ähnliches schützen soll. Ein kleines feines und unkompliziertes Tool, welches ich gerne als zusätzlichen Sicherheits-Layer betreibe.
Nun hatte ich gestern zwar nicht vor zu prüfen ob Fail2Ban ordentlich läuft, tat es aber trotzdem. In diesem Rahmen war Abends mein Server plötzlich nicht mehr zu erreichen und ich fragte mich wo das Problem liegen könnte. Jegliche Verbindungen meinerseits endeten in Fehlern. Nach ein paar kurzen Nachfragen stellte sich aber heraus, dass nur ich direkt betroffen war, es also gar keinen Ausfall gab. Ein paar weitere Nachforschungen offenbarten dann das Problem. Ein altes Smartphone, welches ich zum Debugging während der Entwicklung genutzt hatte.
PC Upgrade 2021 - Up & Running
Seit ca. einem Monat bin ich nun mit meinem neuen System unterwegs und bin bis dato sehr zufrieden. Zwei kleine Erweiterungen gab es noch an der Hardware, welche ich hier in aktualisierte Form niedergeschrieben habe. Zum einen habe ich mir eine 1 TB SSD für meine Arbeitsdaten zulegt und zusätzlich brauchte ich noch ein Verlängerungskabel für meine interne USB-C Erweiterungskarte, wobei sich letzteres erstaunlich kompliziert gestaltete.
Alles in allem ist das System nun aber aktiv und läuft problemlos, nach wenigen Abstürzen, sowie kurzzeitigen Schwierigkeiten mit der Erkennung der GPU. Einige Temperatur- und Lasttests führten zu stabilen Ergebnissen, dedizierte Benchmarks habe ich nicht durchgeführt, da ich selbige nicht sonderlich hilfreich finde.
I'm a coder - Over engineered... again
Es ist schon etwas länger her das in dieser Sammlung etwas geschrieben wurde, aber nun wird es mal wieder Zeit. Denn nach einem durchaus ausführlichen Gespräch mit einem guten Freund und Entwicklerkollegen, hab ich mal wieder neues Lesematerial für euch.
Heute geht es um das Thema Over-Engineering und das in verschiedenen Formen. Den Anfang macht dabei die oft angepriesene nutzerzentrierte Entwicklung von Anwendungen. Ein schönes Buzzword, welches quasi immer im Raum steht bei Anwendungen die für Endanwender gedacht sind, aber sehr oft und sehr schnell vergessen wird. Egal ob die kleine private Anwendung, ein internes Firmentool oder aber eine große App für einen Kunden, das Problem mit dem Over-Engineering ist allgegenwärtig.
Dies äußert sich quasi immer darin, dass man im stillen Kämmerlein entwickelt und entwickelt. Man baut Features, implementiert Abläufe und davon immer mehr und mehr. Manchmal hat man konkrete User Stories, manchmal hat man sich selber etwas überlegt, aber am Ende basiert alles meist auf Annahmen. Denn selbst die beste Marktanalyse kann nicht garantieren, dass die entwickelten Funktionen der Art und Weise wie der Endanwender mit der Anwendung umgehen wollen entspricht. Dies bekommt man im eingeschränkten Rahmen durch Tests raus, aber am besten einfach durch echte Nutzer, die die Anwendung wirklich im Alltag verwenden. Entsprechend gilt hier Release Early Release Often mehr denn je.
Tessa App - Update mit Dark Mode und anpassbaren Kategorien
Es gibt wieder neues von mir aus der Flutter Welt. Meine App Tessa hat ein Update erhalten. In dieser Version fügte ich einen Dark Mode und anpassbare Kategorien hinzu. Natürlich wurden auch diverse Fehler behoben und einige Anpassungen an der UI vorgenommen. Letzteres sorgt vor allem für einen modernen Look im Bereich der Snackbars. Ebenfalls verbessert wurde die Performance.
Im Rahmen des Updates habe ich das erste Mal mit Flutter in Verbindung mit einem dedizierten Dark Mode gearbeitet und ich bin durchaus zufrieden. Generell musste ich lediglich mein allgemeines Theme in ein helles und ein dunkles aufteilen und der Großteil war geschafft. Natürlich muss man sich dann noch um eventuelle manuelle Einstellungen kümmern, aber extrem vieles lief einfach so. Selbst UI die von Third Party Libraries gebaut wird, konnte bis auf kleine Ausnahmen ohne Änderungen verwendet werden. Hier merkt man das Flutters Material Komponenten alle aus einem Guss kommen.
Bedenken sollte man allerdings auch die nativen oder statischen Komponenten. In diesem Bereich habe ich vor allem kleinere Anpassungen an den genutzten Bildern vorgenommen und den initialen Splash Screen angepasst. Hierfür habe ich innerhalb von Android selbst die gegebenen Möglichkeiten genutzt. Da zu diesem Zeitpunkt Flutter selbst noch nicht aktiv ist, ist der Splash Screen immer gemäß des System Themes gesetzt und manuelle App Einstellungen greifen dann nachdem der Flutter Kontext geladen ist.
LAN - Gaming, Spaß und Müdigkeit
Einige ruhige Blog-Tage liegen hinter mir, dafür konnte ich am vergangenen Wochenende mein neues PC Setup auf Herz und Nieren testen. Grund dafür ist ein jährliches Event unter Freunden. Der eine oder andere wird LANs vielleicht noch kennen, auch wenn sie in der heutigen Zeit aufgrund der Verbreitung des Internets vermutlich seltener geworden sind. Eine Gruppe von Gamern schleppt ihre Systeme zu Person X und man verbringt gemeinsam ein Wochenende mit Spaß, Gaming, ungesundem Essen und natürlich vielen Netzwerk- / Software- / Hardware-Problemen.
Auch wenn ich langsam älter werde und die entsprechende Zeit, um sich von einem derartigen Wochenende zu erholen, immer länger wird, so kann ich LANs weiterhin nur empfehlen. Denn wie oft hat man als Erwachsener sonst Zeit sich mit Freunden zu treffen und sich ein ganzes Wochenende zu benehmen als wäre man wieder 16. Man sollte allerdings auf keinen Fall vergessen den Montag frei zu nehmen.
Zu meinem System kann ich übrigens sagen, dass es sich sehr gut geschlagen hat. Lediglich ein BIOS Update war noch nötig, um die Stabilität auf 100 Prozent zu bekommen.
PC Upgrade 2021 - Finale Hardware und Umbautermin steht fest
Wie bereits angekündigt sind nun alle Teile angekommen und der Einbau kann erfolgen. Dies werde ich am Wochenende vornehmen und natürlich entsprechend Bilder dazu erstellen. In weiteren Beiträgen gehe ich dann auf die einzelnen Komponenten ein und warum ich selbige gewählt habe. Die komplette Liste meines neuen Systems findet sich im unteren Teil der News. Sollte es Fragen geben, meldet euch gerne direkt in den Kommentaren. Alle Amazon Links sind Affiliate- / Partner-Links die meinen Blog unterstützen.
PC Upgrade 2021 - Das lange Warten hat ein Ende
Ich hätte nicht gedacht das ich die folgenden Worte dieses Jahr noch aussprechen kann, aber “es geht los”. Der Bau meines neuen PCs, welchen ich bereits vor einigen Monaten geplant hatte, kann nun starten. Grund für die Verzögerung war die aktuelle Verfügbarkeitssituation im Bereich Hardwarekomponenten. Vor allem Grafikkarten sind, auch wenn der Preis in den letzten Wochen durchaus gefallen ist, quasi gar nicht verfügbar und wenn dann nur zum doppelten Normalpreis.
Da ich nicht einsehe für eine ohnehin schon teure Komponente das doppelte zu zahlen, versuchte ich seit diversen Wochen mein Glück beim wöchentlichen Drop im offiziellen AMD Shop open_in_new. Denn dort wird eine geringe Menge von Grafikkarten wöchentlich zur UVP angeboten. Letzte Woche hat es nun geklappt und gestern kam die Karte an, es ist eine AMD Radeon RX 6800 XT Midnight Black open_in_new geworden.
Ich werde mich nun um Backups und Freizeit kümmern, denn mit dem PC Umbau geht bei mir dieses Mal auch ein genereller Umbau im Arbeitszimmer einher. Sobald alles geregelt ist werde ich mir genüsslich das Wohnzimmer reservieren, einen Stream auf den Fernseher packen und mir einen schönen PC-Bastel-Tag genehmigen. In diesem Rahmen werden diverse Bilder entstehen, welche ich zusammen mit der einen oder anderen Beschreibung in weiteren Beiträgen mit euch teilen werde.
Boehrsi.de Services - Modulares Kotlin Setup
Über die Git Struktur meiner Dienste schrieb ich bereits, heute geht es etwas tiefer in die technischen Interna und die Ideen dahinter. Wie erwähnt nutze ich einen Core und selbiger erhält eine beliebige Anzahl an Implementierungen. Dies kombiniert ergibt dann einen Service. Doch wie habe ich dies umgesetzt, wie erfolgt im Code die eigentliche Verbindung zwischen Core und Implementierungen und wie arbeitet man wirklich mit diesem simplen Modularisierungskonzept?
Wie bereits mehrfach erwähnt nutze ich den folgenden Ansatz für kleinere Projekte, an welchen ich meist alleine arbeite. Für mittlere Projekte, mit mehreren Entwicklern, könnte man den Ansatz mit simplem Scripting auch nutzbar machen, für größere Teams würde ich selbigen aber nicht empfehlen. Doch nun zum technischen.
Flutter in Production mit Tessa - Reit-Assistent
Ich arbeite gerne mit Flutter, migrierte meine internen Java & Android Projekte und schreibe quasi täglich die eine oder andere Zeile Code. Doch ist Flutter auch was für den echten produktiven Einsatz? Diese Frage kann ich seit kurzem nun auch offiziell mit einem klar ja beantworten. Grund dafür ist meine erste Flutter App im Google Play Store (Tessa - Reit-Assistent open_in_new), welche durchaus umfangreich geworden ist und mit Dart und Flutter als Basis sehr gut funktioniert.
Der Kontext ist mit einer Companion App für Pferdebesitzer eher außerhalb meiner Kernkompetenzen, aber genau dies zeigt mir noch mehr das man mit Flutter Apps entwickeln kann, die den eigenen Wünschen oder den Wünschen eines Auftraggebers entsprechen. Grund für das Thema der App ist meine Frau, welche mit dem Reiten ein Hobby gefunden hat, welches durchaus komplex sein kann.