Boehrsi.de - IT und Gaming Blog

I'm a coder - Nervige Dinge beim Programmieren

Erstellt am event 29.09.2018 - 12:30 Uhr von account_circle Boehrsi in label Boehrsi
I'm a coder - Nervige Dinge beim Programmieren Bild

Ich entwickle gerne Software, sowohl professionell, wie auch privat, doch manchmal gibt es einfach unschöne Aufgaben, nervige Bugs oder andere Situationen auf die man lieber verzichten würde. Die Top 5 der nervigsten Dinge beim Programmieren - für mich persönlich - möchte ich heute im Rahmen einer weiteren I’m a coder News vorstellen.
Unklare / nicht durchdachte Aufgabenstellung: Egal in welchem Kontext, immer mal wieder stolpert man über nicht fertig gedachte Ideen und Ansätze. Daraus resultiert dann oft eine Änderung der eigentlichen Aufgabe, noch während man initial dabei ist. Dadurch ändern sich auch gerne grundlegende Dinge, sodass ordentlich Hirnschmalz benötigt wird, um entsprechende Anpassungen zu machen ohne komplett neu beginnen zu müssen. Solche Dinge kann man durch ordentliche Planung einschränken, aber leider niemals komplett ausschließen. Gerade im privaten Bereich empfehle ich in diesem Kontext alles zu notieren und ein paar Tage reifen zu lassen, denn wenn man blind drauflos schreibt, landet man häufig in besagter Situation.
Trial and Error Bugfixing: Ein Bug wird entdeckt und die Jagd nach Ursache und Lösung geht los. Auf dem Weg zu Lösung gibt es einige Zwischenschritte und manchmal hat man das Pech einen nicht reproduzierbaren und entsprechend auch nicht wirklich lösbaren Bug zu finden. Dabei kann man dann nur herumprobieren, um sich an eine Lösung anzunähern. Ebenso sieht es aus wenn man zwar genau weiß wo das Problem ist, aber eine klare Lösung nicht erkennbar oder gar möglich ist. Somit kann man auch hier nur via Trial and Error Ansatz versuchen das Problem zu lösen. Am frustriertesten finde ich dabei die Menge an Zeit die man investiert ohne Fortschritte zu machen und ohne Code zu erstellten. Meistens kommt man trotzdem zu einer Lösung und alles ist wieder gut, es gibt allerdings definitiv dankbarere Aufgaben. Wirklich tun kann man gegen diese Art von Problemen leider auch nichts, denn diese Art von Bugs kommt bei der Entwicklung einfach auch vor.

Weiterlesen…

Boehrsi.de Version 8 - Hugo aktuell halten

Erstellt am event 22.09.2018 - 14:00 Uhr von account_circle Boehrsi in label Development
Boehrsi.de Version 8 - Hugo aktuell halten Bild

Ein weiterer Beitrag zu meinen Erfahrungen mit dem Static Site Generator Hugo im Rahmen der Entwicklung meines Blogs steht an. Das Thema ist kurz und knapp, aktualisiert Hugo häufig und passt euren Code entsprechend der letzten Änderungen an. Selbiges tat ich gestern, auf die aktuelle Version v0.48 und das Ergebnis ist ein Viertel weniger Build-Zeit und wesentlich sauberer Code an diversen stellen.
Dabei half vor allem das letzte Update, welches es ermöglicht Variablen zu überschreiben open_in_new. Bis dato war dafür die Nutzung von .Scratch Variablen open_in_new nötig, was ich persönlich etwas anstrengend fand. Zusätzlich setze ich umfangreich auf resources.Get, was die Basis für die Minification von CSS und JS Dateien open_in_new ist. Außerdem verwende ich nun .Site.GetPage open_in_new an diversen Stellen. Dadurch kann man schnell und einfach für einen konkreten Pfad die gesamte Seite, inklusive des jeweiligen Kontexts, laden und verwenden. Letzteres half mir z.B. dabei fehlerhafte Links zu beheben, welche durch Slashes in Kategorien oder Tags auftraten.
Die Generierung meiner Seite ist nun zusätzlich mit einem weiteren Parameter versehen. Ich führe den Build-Prozess nun mittels hugo –minify open_in_new aus. Dies sorgt dafür das alle möglichen Ressourcen, wie z.B. HTML Seiten, verkleinert werden. Dies minimiert die Ladezeiten, da die eigentliche Seite kleiner ist.
Alles in allem habe ich nun ordentlicheren Code, welcher entsprechend besser wartbar ist und zusätzlich sollte die Seite schneller laden und weniger Fehler beinhalten. All diese Verbesserungen basieren grundlegend auf den Verbesserungen an Hugo bzw. der Programmiersprache Go. Solltet ihr also Hugo nutzen, habt ruhig ein Auge auf die Releases im Github Projekt, welche ihr in den Related Links findet. Selbige sind immer recht umfangreich beschrieben und vermitteln schnell eine Idee, ob das Update für einen selbst hilfreich sein könnte.

Related Links

I'm a coder - Aktualisierungen von Third-Party-Libraries

Erstellt am event 21.09.2018 - 19:00 Uhr von account_circle Boehrsi in label Boehrsi
I'm a coder - Aktualisierungen von Third-Party-Libraries Bild

Der letzte I’m a coder Beitrag ist schon länger her, was nicht zwangsweise daran liegt das es nicht neues in diesem Bereich bei mir gibt, sondern eher daran das die Beiträge in anderen Sammlungen einsortiert werden. Doch wie ich auch immer, ich habe mal wieder etwas allgemeines, was gut in diese Sammlung passt.
Zuletzt kam ich durch die Droidcon auf das heutige Thema. Es geht um die Aktualisierung von Third-Party-Libraries, welche man in seinen Programmen, Tools oder Apps nutzt. Denn häufig hat man kleine praktische Bibliotheken, die einem Arbeit abnehmen und Funktionen verlässlich und schnell zur Verfügung stellen, ohne dass man das Rad andauernd neu erfinden muss. Ob man dabei alle Nase lang Fremdbibliotheken nutzt oder lieber alles selber schreibt, kommt auf das Projekt und die generelle Einstellung an. Das man bereits eingebundene Libraries aber aktualisieren sollte, sofern man welche nutzt, ist denke ich klar.
Doch warum fällt dies so schwer? Never Change a Running System, denn es funktioniert alles, ist häufig ein guter Grund. Auch häufig ist das fehlende Bewusstsein für diese Bibliotheken, denn wenn alles funktioniert schaut man oft gar nicht mehr nach diesen Inhalten und eventuell verfügbaren Updates. Damit einher gehen dann natürlich diverse Probleme, wie z.B. Abstürze. Unter Android sind häufig Plattformupdates ein guter Grund für ein Update von Libraries, denn oft gibt es nach größeren Systemänderungen Probleme. Doch häufig entdeckt man diese Probleme erst nach längerer Zeit und nach einigen unzufriedenen Nutzern. Reaktiv reagieren ist eben nur eine Notlösung und sollte nicht der permanente Zustand sein.

Weiterlesen…

Gitea - Issue Tracker fürs Task Management nutzen

Erstellt am event 15.09.2018 - 14:30 Uhr von account_circle Boehrsi in label Development
Gitea - Issue Tracker fürs Task Management nutzen Bild

Vor einiger Zeit wechselte ich von GitList auf Gitea, da ich eine praktische Plattform für meine Git Repositories im Web brauchte. Zum einen wollte ich eine übersichtliche Darstellung für meine privaten Repositories und zum anderen wollte ich von überall schnell auf meinen Code zugreifen können. Diese Dinge erfüllt Gitea sehr gut, doch es kann noch einiges mehr.
Ich habe mittlerweile einige Projekte, manche aktiver und mancher werden eher alle paar Monate mal angefasst. Doch alle haben etwas gemeinsam. Tasks, Features und Bugs wollen verwaltet werden. Dies tat ich bis dato mit TODO-Listen, gespeicherten Tabs im Browser, Zetteln und vielem mehr. Nichts davon war wirklich erfolgreich und vor allem war keine der Lösungen portable und gleichzeitig übersichtlich.
Während eines Urlaubs, wo meine normalen Lösungen nicht wirklich in Frage kamen, schaute ich dann einfach mal wie die Gitea Issue-Verwaltung so aussieht und siehe da, sie ist gut. Eigene Labels, Milestones und TODO-Listen innerhalb von Tasks sind möglich, die UI ist übersichtlich und durch Kommentare kann man Gedanken und ähnliches vermerken. Das Ganze ist sehr ähnlich zu Github aufgebaut, was durchaus gut ist, da viele diese Plattform bereits kennen.

Weiterlesen…

Related Links

Cross Platform - Flutter First Look

Erstellt am event 05.09.2018 - 09:50 Uhr von account_circle Boehrsi in label Development
Cross Platform - Flutter First Look Bild

Flutter open_in_new und Dart open_in_new dürften für den einen oder anderen von euch sicherlich keine Unbekannten sein. Im Cross-Platform-Land und vor allem im Android-Bereich ist Flutter aktuell gefragt und auch auf der Droidcon und Google I/O wurde die neue Cross-Platform-Lösung thematisiert.
Ich selbst habe aktuell im Rahmen meiner Arbeit und privaten Entwicklung mit Flutter zu tun und muss sagen ich bin durchaus angetan. Ein erster Blick ließ mich wesentlich positiver zurück als ich es von Cross-Platform-Lösungen gewohnt bin. Denn gegenüber selbigen hege ich eine dezente Skepsis. Doch der Ansatz von Flutter unterscheidet sich von vielen anderen Lösungen, da er nicht auf Webtechniken oder dergleichen setzt, sondern auf einen eigenen losgelösten Renderer. Dies behebt sicherlich nicht alle Probleme, aber kann einige lösen oder zumindest minimieren.
Ich habe in der letzten Zeit diverse Tutorials und Infovideos gesehen und konnte nun auch endlich mal ein paar Zeilen aktiv schreiben. Ich habe unter anderem das Chat-App-Tutorial open_in_new umgesetzt und das Ganze macht tatsächlich Lust auf mehr, auch wenn es natürlich gewöhnungsbedürftig ist. Wie gut oder schlecht sich Flutter im aktiven und längeren Gebrauch schlägt bleibt natürlich abzuwarten, aber ein positiver Einstieg ist ja durchaus auch etwas Erwähnenswertes. Vor allem bei solchen Dingen wie Hot-Reload, einem sehr umfangreichen und reaktiven UI-Framework, einem einfachen Zugang durch bekannte IDEs (Android Studio oder IntelliJ Idea) und einem sehr guten Entwicklungs-Flow.
Wie sieht es bei euch aus, habt ihr schon einmal mit Cross-Platform-Lösungen gearbeitet oder entwickelt und kennt oder nutzt ihr vielleicht auch Flutter?

Related Links

Resizy - Version 1.0 released

Erstellt am event 03.09.2018 - 10:00 Uhr von account_circle Boehrsi in label Development
Resizy - Version 1.0 released Bild

Vor ca. zwei Jahren veröffentlichte ich Resizy in der Version 0.5. Mein kleines Tool zur Größenveränderung von Bildern kommt vor allem zum Einsatz, wenn man schnell eine größere Anzahl von Bildern verkleinern oder vergrößern will. Zusätzlich gibt es ein paar Komfortfunktion und die Möglichkeit selber an der Entwicklung des Open Source Programms teilzuhaben.
Da ich das Tool recht häufig für den Blog nutze und diese Woche mal wieder auf den Code geschaut habe, dachte ich mir eine Code-Modernisierung sei durchaus angebracht. Diese fiel nun wesentlich umfangreicher aus, da ich doch mehr Dinge angepasst habe als geplant. Aus diesem Grund trägt die nun veröffentlichte Version auch die Versionsnummer 1.0.
Im Funktionsbereich wurde das User Interface aufgeräumt und die Hilfe bei der Nutzung verbessert. Ebenso wurden die Übersetzungen und Fehlermeldungen verbessert. Im Bereich der Menüeinträge ist es nun möglich direkt Feature Requests oder Bug Reports zu erstellen.
Im Code Bereich wurde die gesamte UI neu erstellt und modernisiert, diverse Altlasten wurden entfernt und mehr Java 8 Konstrukte integriert. Die UI ist nun ordentlich von der Logik getrennt und sowohl das Einlesen der Config, wie auch die Nutzung von Übersetzungsdateien wurden gemäß geltenden Standards angepasst. Dadurch ist der Code nun wesentlich aufgeräumter, besser wartbar und fehlerfreier. Weitere Informationen, ebenso wie den Download, findet ihr direkt in den Related Links bzw. auf GitHub.

Related Links

Droidcon 2018 - Alle Sessions online

Erstellt am event 30.08.2018 - 10:00 Uhr von account_circle Boehrsi in label Development
Droidcon 2018 - Alle Sessions online Bild

Die Droidcon ist nun schon über zwei Monate her und aus Zeitgründen und Faulheit habe ich es immer noch nicht geschafft meine Zusammenfassung und mein Feedback niederzuschreiben. Doch etwas Neues und Interessantes rund um die Droidcon gibt es trotzdem, denn seit kurzem sind alle Videos zu den Sessions online. Dies dürfte vor allem für jene relevant sein, die leider nicht am Event teilnehmen konnten. Doch auf für die Teilnehmer dürfte es das eine oder andere neue geben, denn häufig überschneiden sich spannende Sessions auf den verschiedenen Tracks.
Zusätzlich zu den eigentlichen Sessions gibt es ein Recap-Video, welches ich im unteren Teil der News eingebunden habe, es vermittelt das Feeling der Droidcon durchaus gut. Ich hoffe auch im nächsten Jahr wieder dabei sein zu können.

Weiterlesen…

Related Links

Boehrsi.de Version 8 - Tipps und Tricks für Hugo

Erstellt am event 24.08.2018 - 16:30 Uhr von account_circle Boehrsi in label Development
Boehrsi.de Version 8 - Tipps und Tricks für Hugo Bild

Während der Entwicklung meines neuen Blogs bin ich natürlich über diverse Dinge gestolpert, vor allem im Bereich der Entwicklung mit Hugo. Dies bezieht sich sowohl auf das Tool selbst, wie auch auf die Templating-Engine. In diesem Beitrag möchte ich etwas auf beide Themen eingehen.
Beginnen möchte ich mit Hugos Command Line Interface (CLI) open_in_new, denn dies ist der Weg um Hugo zu steuern. Für die Entwicklung nutze ich meistens hugo server. Dadurch wird ein Server erstellt der schnell und flexibel, mit automatischem Reload bei Änderungen, eure Website lokal verfügbar macht. Solltet ihr umfangreichere Änderungen machen, die vielleicht nicht immer komplett erkannt werden, kann durch hugo server –disableFastRender der schnelle Rendering Modus deaktiviert werden. Dadurch dauert das erneute bauen etwas länger, Änderungen werden aber besser erkannt und umgesetzt. Solltet ihr einfach nur neuen Content hinzufügen und nicht am Template arbeiten, reicht übrigens meistens hugo server.
Um die Seite zu bauen reicht es hugo aufzurufen, dadurch wird im /public Ordner die gesamte Seite erstellt, sodass ihr sie direkt hochladen könnt. Bevor ihr dies tut kann man übrigens mittels hugo benchmark und hugo –templateMetrics herausfinden wie lange eure Seite und die einzelnen Komponenten zum Bauen brauchen. Dadurch findet man Bottlenecks und kann entsprechend optimieren. Ich konnte meine Build-Zeit dadurch vor kurzem von 140 Sekunden auf 40 drücken, wofür ich nur Änderungen in weniger als zehn Zeilen brauchte.

Weiterlesen…

Related Links

Boehrsi.de Version 8 - Mein Theme

Erstellt am event 16.08.2018 - 10:00 Uhr von account_circle Boehrsi in label Development
Boehrsi.de Version 8 - Mein Theme Bild

Das Aussehen einer Website definiert maßgeblich ob Benutzer selbige aktiv nutzen oder schnell wieder verschwinden. Der Inhalt ist natürlich auch wichtig, aber der erste Eindruck muss eben auch passen.
Aus diesem Grund habe ich viel Arbeit in mein aktuelles Design oder im Hugo-Kontext Theme fließen lassen. Initial dachte ich darüber nach ein fertiges Theme zu nutzen und es vielleicht nur anzupassen. Da ich aber relativ spezielle Anforderungen habe, baute ich schlussendlich doch alles selbst. Inspiriert wurde ich aber vom Hugo AMP Design open_in_new, wie man vielleicht am schrägen Header erkennt.
Erstellt habe ich alles von Grund auf neu, unter Zuhilfenahme meiner alten HTML Struktur, kombiniert mit dem moderneren Ansatz aus dem oben genannten Theme.

Weiterlesen…

Related Links

Boehrsi.de Version 8 - Hugo Static Site Generator

Erstellt am event 15.08.2018 - 10:00 Uhr von account_circle Boehrsi in label Development
Boehrsi.de Version 8 - Hugo Static Site Generator Bild

Hugo ist zum einen ein Getränk und zum anderen aber auch ein verdammt guter Open-Source Static-Site-Generator. Für mich wurde er vor allem interessant da es keine Abhängigkeiten gibt, welche über Paketmanager oder manuell geladen werden müssen. Denn ich möchte mich auf die Entwicklung konzentrieren und nicht darauf den Build-Prozess mal wieder zu reparieren.
Wie ich Hugo initial gefunden habe weiß ich gar nicht mehr, aber ich war von Anfang an durchaus interessiert, als ich vor knapp zwei Jahren das praktische Tool entdeckte. Doch durch den durchaus großen Aufwand einen kompletten HTML / CSS / PHP / MySQL Stack wegzuwerfen und von Grund auf in einer unbekannten Technik neu zu schreiben, dauerte es noch etwas bis zur eigentlichen Umsetzung.

Weiterlesen…

Related Links
format_list_numbered  Seite 1 Nächste navigate_next