Flutter / Dart Null Safety Migration

Vor wenigen Tagen erschien im Rahmen des Flutter 2.0 bzw. Dart 2.12 Releases der stabile Null Safety Support für Dart. Entsprechend begab ich mich gestern Abend das erste Mal auf den Migrationspfad und aktualisierte meine kleine Anwendung zur Auswertung von Statistiken. Selbige nutze ich produktiv zum erfassen der Nutzerzahlen hier im Blog und auch um die monatlichen Top 10 Listen zu erstellen.
Die Migration ist sehr gut dokumentiert open_in_new und was extrem großartig ist, ist der dart migration
Befehl, welcher versucht ein Projekt ohne Null Safety für euch anzupassen. Dabei erhält man einen geführten Prozess, bei welchem ihr die Liste der geplanten Änderungen auf einer interaktiven lokalen Website zu sehen bekommt und dort noch weitere Anpassungen vornehmen könnt. Meiner Meinung nach ist dieses Tool im Kontext der Migration eine glatte Eins mit Sternchen.
Nachdem ausführen der Migration für das kleine Projekt mit ca. 1000 Zeilen reinem Code, blieb tatsächlich nur eine Stelle an der ich manuell Hand anlegen musste. Die App lief anschließend ohne Probleme und weiterer Aufwand war nicht nötig. Hier kommt nun aber eine Empfehlung, die mehr Arbeit bedeutet, selbige meiner Meinung nach aber wert ist.
Meine Statusseite - Designt mit Bulma

Weiter geht es heute mit meiner kleinen Newssammlung zum Thema Boehrsi.de Statusseite. Heute geht es noch einmal um den reinen Code und wie ich die eigentliche UI erstellt habe. Während die folgenden Beiträge sich eher auf das Setup und Deployment beziehen. Bei Fragen stehe ich wie gewohnt gerne Rede und Antwort in den Kommentaren.
Das Thema Design ist für mich ein spezielles, da ich nicht sonderlich kreativ bin, aber trotz dessen versuche gut aussehende User Interfaces zu erstellen. Ich setze dabei meist auf Minimalismus und den Fokus auf den Content. Generell baue ich fast alles von Grund auf selbst, doch bei diesem Projekt habe ich einen anderen Weg eingeschlagen. Aus verschiedenen Gründen wollte ich weitere Erfahrungen zum Thema Bulma sammeln und entschied mich aus diesem Grund wieder für das CSS Framework.
Meine Statusseite - Entwickelt mit Hugo

Ich habe in den letzten Monaten häufiger mit Bulma im Kontext der Webentwicklung gearbeitet und das Open-Source-CSS-Framework zusammen mit Hugo, dem Static Site Generator meiner Wahl, genutzt. Resultat ist unter anderem meine Status Website open_in_new. Dieses kleine Projekt hat aber noch ein paar mehr Eigenheiten, denn abseits der eigentlichen Entwicklung nutzte ich bei diesem Projekt das erste Mal umfangreicher GitHub Actions fürs Deployment und GitHub Pages open_in_new fürs Hosting.
GitHub Dependabot - Automatisierte Updateüberprüfung für Abhängigkeiten

Libraries machen das Leben von Entwicklern einfacher, denn man muss nicht alles selber schreiben und kann sich auf die eigentlichen Features einer Anwendung konzentrieren. Allerdings gibt man auch Kontrolle und Übersicht ab und entsprechend kann man sich Probleme einhandeln.
Um externe Abhängigkeiten automatisch auf dem neusten Stand zu halten gibt es Dependabot. Früher war Dependabot eine eigenständige Firma, mittlerweile ist man bei GitHub untergekommen, was die dortige Integration natürlich noch einfacher macht. Außerdem ist der Dienst nun komplett kostenlos.
Vor allem auf Sicherheitsupdates weißt Dependabot hin, denn häufig integriert man Abhängigkeiten, aktualisiert selbige aber nicht solange alles läuft. Dabei gehen Sicherheitsprobleme in den Abhängigkeiten natürlich unter. Im Fall eines erkannten Updates wir einfach ein Pull Request erstellt und alles folgt dem gewohnten Flow.
Unterstützt werden unter anderem Ruby, JavaScript, Python, Java (Gradle / Maven), .NET und Docker. Leider ist Dart und somit auch Flutter aktuell noch nicht mit von der Partie und soweit ich es erkennen kann ist derzeit auch nicht geplant das sich dies ändert. Das ist zwar sehr schade, aber durch die pub.dev open_in_new Plattform und das Tooling drum herum, kann man den Prozess der Überprüfung auf Updates hier zumindest teilautomatisiert umsetzen.
GitHub Actions - Automatisierung leicht gemacht

Auch wenn ich auf meinem Server ein On-Premise Git Setup habe, welches kleine Aufgaben automatisiert übernimmt, so habe ich mittlerweile immer mehr GitHub Repositories und auch solche wollen automatisiert werden.
Für diese Zweck bietet GitHub mit seinem Actions Setup eine sehr gute und flexible Lösung, welche euch nicht nur viel Arbeit abnehmen kann, sondern auch sehr einfach zu nutzen ist. Aufgrund der Größe der Plattform gibt es bereits jetzt extrem viele Actions, die ihr nur eurem Repository hinzufügen müsst und schon geht es los. Ich nutze GitHub Actions z.B. um für meine Status Seite open_in_new (GitHub Repository open_in_new) automatisiert nach einem Push die Build und Deploy Schritte auszuführen.
IntelliJ IDEA Conf steht an

IntelliJ IDEA wird 20 Jahre alt und um das entsprechend zu feiern veranstaltet JetBrains, die Firma hinter IDEA, eine Entwicklerkonferenz. Selbige ist aus gegebenem Anlass natürlich rein digital und gleichzeitig auch kostenlos. Die IntelliJ IDEA Conf findet vom 25. bis 26. Februar statt und bietet an beiden Tagen jeweils sieben Vorträge.
Anmelden kann man sich direkt auf der Konferenzseite, sodass man an das Event erinnert wird. Wer keine Zeit hat kann die Sessions auch später anschauen, denn selbige werden aufgezeichnet. Da ich täglich IDEA und Android Studio nutze, bin ich durchaus gespannt, welche Neuigkeiten es gibt und wo vielleicht noch Verbesserungen vorgenommen werden. Solltet auch ihr Interesse haben folgt einfach den Related Links.
Postman - Version 8 erschienen

Erst vor wenigen Tagen schrieb ich über Postman und heute ist es schon wieder soweit. Grund dafür ist der Release der neuen Major Version 8.0. Die neue Version bringt eine komplett überarbeitete UI und eine vereinheitlichte Suche. Beides soll euch helfen schneller Dinge zu erledigen und zu finden.
Die neue UI, welche es natürlich auch im Dark Mode gibt, gruppiert und ordnet eure Inhalte besser an und erlaubt es euch verschiedene Bereiche der UI flexibel zu platzieren bzw. skalieren. Auf diese Art könnt ihr die UI gemäß euren Wünschen anpassen. Obwohl der Umbau durchaus umfangreich ist, konnte ich mich direkt wieder zurecht finden, insofern ist die Umgewöhnung also durchaus gut machbar. Die vereinheitlichte Suche soll euch auf einen Blick alle relevanten Informationen liefern, welche ihr dann gemäß euren konkreten Anforderungen filtern könnt.
Bis dato bin ich mit der neuen Version sehr zufrieden, auch wenn man natürlich bedenken muss, dass ich nur einen Bruchteil der verfügbaren Funktionen nutze. Entsprechend kann ich keine Meinung zum Gesamtbild abgeben. Allerdings habe ich nun zumindest angefangen mehrere Workspaces zu nutzen und ich habe verschiedene Einstellungen meinem Geschmack entsprechend angepasst. Wie sieht es bei euch aus, nutzt ihr auch Postman und seid ihr schon mit der neuen Version unterwegs.
Boehrsi.de Blog Review 2020

Wie angekündigt wollte ich das letzte Jahr auch im Kontext meines Blogs Revue passieren lassen und dies tue ich hiermit. Denn 2020 war ein spezielles Jahr und auch hier im Blog gab es einige positive und negative Entwicklungen.
Alles in allem läuft der Blog technisch wieder rund. Gerade in der ersten Jahreshälfte war dies allerdings auf Grund von Serverproblemen leider häufiger nicht der Fall. Diverse kleinere Probleme und ein Hardwareproblem im Bereich der HDD sorgten teils auch für mehrtägige Komplettausfälle. Dinge die man natürlich verhindern will und mit ausreichend Aufwand auch könnte, aber am Ende muss das Kosten- / Nutzenverhältnis stimmen.
Abseits der Probleme im Bereich der Stabilität, bin ich weiterhin sehr froh über mein Static Website Setup via Hugo, welches durch die nun neu geschriebenen Kotlin Services ergänzt wird. Die Konvertierung von Java auf Kotlin, inklusive Umbauarbeiten, Aufräumarbeiten und Erweiterungen hat viel Spaß gemacht und die angekündigte Newssammlung zum Thema wird aktuell vorbereitet. Hier wird es für Interessierte also bald mehr geben.
Im Bereich Content konnte ich fast immer mindestens 5 Beiträge pro Woche veröffentlichen, was mein generelles Ziel ist. Entsprechend ist die Quantität durchaus gut, an der Qualität versuche ich aktuell zu arbeiten. Dies bedeutet das Beiträge mehr Tiefe und Inhalt haben sollen. Also z.B. eher ein Tutorial wie man etwas nutzt, statt einem reinen Erfahrungsbericht. Problem dabei ist natürlich der entsprechende Zeitaufwand. Hier versuche ich gerade einen passenden Mittelweg zu finden.
Meine Postman Basics

Über Postman habe ich bereits das eine oder andere Mal berichtet und heute möchte ich mein kleines Postman 1x1 mit euch teilen. Ich nutze Postman vor allem bei der Entwicklung von neuen APIs, um selbige schnell und einfach zu testen. Generell plane ich meine APIs und implementiere die ersten Calls, direkt gefolgt von ersten Postman Tests.
Zu Beginn erstellte ich dabei einfach wild Requests und gab Daten immer und immer wieder ein. Mit steigender Request Anzahl und häufiger auszuführenden Tests, wurde dies aber durchaus müßig. Um Arbeit zu erleichtern und das ohne großen Aufwand, erstelle ich diesen Beitrag, denn mit nur sehr wenig Aufwand kann Postman einem das Arbeiten mit APIs massiv vereinfachen.
Resizy - Entwicklung eingestellt

Im Rahmen meines Online-Frühjahrsputzes habe ich eines meiner letzten Legacy Java Projekte in Rente geschickt. Mein kleines Tool zum ändern von Namen und Größen von Bildern - Resizy genannt - war eines meiner letzten Java Tools und wurde zuletzt ohnehin wenig aktualisiert.
Ich nutzte das Tool meist um Batch Operationen auf Bildern durchzuführen, welche ich hier im Blog nutzen wollte. In der letzten Zeit brauchte ich das Tool selber sehr selten und auch von extern gab es wenig Interesse. Den Todesstoß für das Projekt gab es nun durch Build-Probleme. Denn aufgrund einer neuen Java Version lässt sich das Projekt nicht mehr ordentlich bauen.
Da ich Java ohnehin aktuell den Rücken kehre (Kotlin und Flutter / Dart ersetzen es) gab es für mich entsprechend nur wenig Motivation eine Trail and Error Problemsuche zu starten. Ob es einen kleinen Nachfolger z.B. in Flutter / Dart geben wird steht aktuell noch nicht fest, aber ausschließen will ich es nicht.