Programmieren lernen mit Minecraft

Gestern wurde ich von Sandra open_in_new auf ein kleines Einsteiger-Tutorial für Programmieranfänger und Kinder hingewiesen. Im Kern muss man logisch denken, lernt ein paar grundlegende Konstrukte der Softwareentwicklung kennen und bekommt dies in Form einer kleinen Minecraft Welt visualisiert. Der kleine Kurs ist schön gemacht und ich habe es mir nicht nehmen lassen die 14 Level selber mal zu “programmieren”. Eine Anmeldung ist nicht nötig, nur ein wenig Verständnis der englischen Sprache wäre hilfreich. Ich kann den Kurs nur empfehlen, ist eine lustige Beschäftigung für zwischendurch.
Android Programmierung kann lustig sein

Android Programmierung erfordert Logik, Wissen bezüglich Programmierung allgemein und mathematische Grundlagen sollten auch gegeben sein. Dann folgt viel Training, daraus entwickelt sich Erfahrung und noch diverse weitere Dinge müssen bedacht werden. Das klingt nicht wirklich lustig, muss ich zugeben. Doch das es seitens Google auch die eine oder andere Portion Humor gibt sieht man sogar versteckt in der Android API. So wurde ich heute auf der Arbeit auf die tatsächlich vorhandene Methode isUserAGoat() hingewiesen. Diese befindet sich in der UserManager Klasse, welche Informationen zum Nutzer zurück gibt. Hintergrund ist das Spiel Goat Simulator, welches vielen Lesern ein Begriff sein dürfte. Die Beschreibung der Methode ist recht unterhaltsam und die Implementierung prüft tatsächlich ob das genannte Spiel auf dem Smartphone vorhanden ist. Meiner Meinung nach ein lustiges kleines Easter Egg und eine witzige Idee von Google. In den Related Links findet ihr den Eintrag in der Android Dokumentation zur genannten Methode.
Weitere Aktualisierung und Patches im Backend

Aktuell wird sowohl auf Seiten von Strato, wie auch von mir persönlich, einiges am Server getan. Soll heißen, am 11.11.2015 zwischen 00:15 Uhr und 01:15 Uhr wird der Server durch ein Update Seitens Strato neu gestartet und wird kurz nicht verfügbar sein. Ich selbst habe in den letzten Tagen meine Verwaltungssoftware im Backend aktualisiert, verschiedene Scripte angepasst und den Server etwas aufgeräumt. Für die Homepage selbst dürften die Auswirkungen nicht spürbar sein. Trotzdem halte ich derartige Aufräumarbeiten und Aktualisierungen für sehr wichtig, da es ansonsten früher oder später zu Performance-Problemen oder anderen Fehlern kommen kann. Wie steht ihr zu diesem “etwas leidigen Thema”, also proaktiver Pflege von IT Komponenten und Software?
HTML5 Validator Bookmarklet

Wer Webseiten erstellt muss auf vieles achten, denn neben der Kompatibilität mit diversen Browsern, ist auch die Validität des HTML Codes ein nicht unwichtiger Punkt. Als Firefox Nutzer habe ich bis dato auf das Addon HTML Validator open_in_new gesetzt. Doch für die HTML5 online Validierung muss man nun leider eine Version von einer externen Seite installieren und kann nicht mehr auf den Addon Store setzen. Alternativen wie das Addon HTML 5 Validator open_in_new öffnen nur eine Homepage, welche die Ergebnisse der Validierung anzeigt. Diese Funktion ist zwar hilfreich, aber ein Addon braucht man dafür beim besten Willen nicht. Also habe ich mir ein kleines Bookmarklet geschrieben.
Homepage Update Version 7.6

Wie angekündigt gibt es nun ein kleines Update der Homepage. Dieses sollte bereits bei allen Nutzern sichtbar sein. Allem voran habe ich kleinere Änderungen am Design vorgenommen. Sichtbar bei allen “Boxen”, welche Text oder Bilder umschließen. Hier habe ich den Schatten und die Form minimal angepasst. Die Hintergrundfarbe der gesamten Seite ist etwas heller geworden und einige Schrifteinstellungen wurden geändert. Der Footer der Seite ist nun etwas prägnanter. Außerdem habe ich viel im CSS Code aufgeräumt und bin auf einen neuen CSS Minifier open_in_new umgestiegen. Zusätzlich habe ich einige Unterseiten im Blog und Über Bereich angepasst. Diese sind nun übersichtlicher und einheitlicher gestaltet, dies betrifft vor allem die Sammlungen. Im Backend habe ich ein paar Kleinigkeiten geändert und einige Anzeigen optimiert. So sieht man nun in der Blog Bereich Seitenleiste mehr von den jeweiligen News und Kommentaren, dafür wird kein Datum mehr angezeigt. Am heutigen Tag erstellte News werden dick markiert. Zusätzlich wurde auch hier aufgeräumt. Der nächste große Schritt wäre wohl eine allgemeine Anpassung des PHP Codes, gemäß Good Coding Practices und ähnlichem. Dies würde aber sehr viel Zeit kosten und hat aktuell nur minimale Relevanz für mich. Alles in allem gefallen mir die Änderungen, auch wenn sie nicht sonderlich umfangreich aussehen, sehr gut. Die Seite wirkt allgemein etwas konsistenter und flüssiger von der Designsprache her. Was sagt ihr dazu oder sind euch die Änderungen gar nicht aufgefallen.
Meine Android Projekte - Status

Mit FileSize und ServAlyze habe ich zwei Android Projekte die aktuell noch entwickelt werden. Doch wie geht es eigentlich weiter und wie sieht es mit dem dritten, aktuell geplanten Projekt aus. Vorweg eine etwas schlechte, wenn auch vermutlich nicht sonderlich relevante Nachricht. Denn ServAlyze wird vorerst nicht mehr weiterentwickelt. Es gab lange keine Updates mehr und man müsste erst einmal die GUI komplett an die neuen Design-Elemente von Lollipop und Marshmallow anpassen. Dies würde viel Zeit kosten, diverse Probleme bringen und alles in allem vermutlich nur einen sehr geringen Mehrwert haben. Grund dafür ist der sehr geringe Nutzerkreis der App. FileSize hingegen wird weiterentwickelt und dies auch aktiv. Ich habe eine lange Liste, mit teils kleinen und teils großen Aufgaben, diese möchte ich alle zeitnah implementieren. Dabei werde ich auch gleich etwas aufräumen und meine neu erworbenen Fähigkeiten im Android Bereich einsetzen. Dazu kommen einige großartige externe Libraries, welche mir das Leben wesentlich einfacher machen werden.
Homepage Update - Design und Code

Da ich aktuell recht motiviert bin, habe ich mir mal meine Homepage geschnappt und einige Dinge angepasst. Vor allem Stellen die ich schon länger im Auge hatte wollte ich angehen. Überwiegend Kleinigkeiten am Design, ein paar Änderungen im Backend und einige Anpassungen an meinem Admin Interface habe ich bis dato umgesetzt. Bevor ich das Update nun am Ende des Wochenendes von meiner Entwicklungsversion auf die produktive überspiele, wollte ich euch fragen ob ihr noch Ideen oder Wünsche habt. Denn wenn ich sowieso gerade dabei bin, dann wäre jetzt der richtige Moment. Meldet euch einfach in den Kommentaren, sofern ihr etwas beitragen wollt und ich schaue ob es umsetzbar ist.
Eigenen remote GIT Server nutzen

Android Apps zu entwickeln bedarf meiner Meinung nach nicht nur das eigentliche Wissen rund um die Programmierung. Zusätzlich sollte man sich auch mit der Entwicklungsumgebung, Versionsverwaltungen und verschiedenen weiteren Themen auseinandersetzen. Denn ansonsten gibt es sobald man mit mehreren Leuten oder alleine an größeren Projekten arbeitet Probleme. Deswegen gibt es viele Dinge die einem das Leben erleichtern, auch wenn sie vielleicht zu Beginn etwas Arbeit bedürfen. Dazu gehört meiner Meinung nach auch eine gute Versionsverwaltung. In diesem Bereich setzte ich bis dato auf SVN, da mir GIT gelinde gesagt in diversen Bereichen zu kompliziert war. Durch die Arbeit habe ich nun einen wesentlich besseren Zugang zu GIT, auch wenn ich bei weitem noch nicht alles entsprechend beherrsche und lieber auf meine Notizen zurückgreife, als alles aus dem Kopf und dafür vielleicht falsch zu machen. Diesen tieferen Einblick in GIT und meinen geplanten Wechsel zu Android Studio habe ich mir heute Nachmittag zum Anlass genommen und meine drei Android Apps (zwei bereits im Store und eine ist noch in der Konzeptionsphase) auf Android Studio und GIT migriert. Falls auch euch GIT in diesem Bereich interessiert, schaut euch mein kleines How To im unteren Bereich der News an.
Software Entwicklung - Design Patterns

Egal ob man Android Apps oder PC Software entwickelt, Design Patterns sind extrem wichtig. Denn sie ersparen einem zum Teil viel Coding Aufwand, viele Probleme und ermöglichen einheitliche Herangehensweisen an Probleme. Doch welche Patterns es gibt und wann man sie richtig einsetzt bedarf etwas Übungen. Außerdem sollte man sich mit möglichst vielen auseinandersetzen, um im richtigen Moment auch die richtigen Techniken anwenden zu können. Eine meiner Meinung nach recht gute und auf englisch verfasste Zusammenfassung bezüglich Design Patterns findet ihr in den Related Links. Neben Erklärungen und Beispielbildern gibt es dort auch Source Code in verschiedenen Sprachen (z.B. Java, PHP und C++). Dies dürfte gerade wenn man komplett neu im Bereich Patterns ist recht hilfreich sein. Bedenken sollte man bei allen schönen Patterns übrigens eines, es zu übertreiben ist auch keine gute Lösung.
Android App Entwicklung - Coding Guidelines

Android Apps entwickeln kann im Prinzip jeder, sofern er sich mit der Materie auseinandersetzt und entsprechende Programmierkenntnisse hat. Doch zwischen einfach nur entwickeln und gut entwickeln liegen meistens Welten. Dies wird vor allem klar wenn man mit anderen zusammen arbeitet, denn dann müssen alle gemäß identischen Regeln entwickeln. So bleibt der Code lesbar, man versteht was andere erstellen und das gemeinsame Arbeiten wird massiv optimiert. Aus diesem Grund habe ich in der letzten Zeit mal etwas mehr bezüglich Android Coding Guidelines recherchiert und mir vor allem die offiziellen Regeln angeschaut. Zusätzlich hat mir ein Kollege auf der Arbeit noch einen guten Hinweis zu den CodePath Android Cliffnotes gegeben. Die Ersteller dieser Guidelines haben das ambitionierte Ziel, die zentrale Anlaufstelle im Bereich der gemeinsam erstellten Android Guidelines zu werden. Beide Guidelines habe ich unten verlinkt und ich kann jedem Entwickler von Android Apps nur empfehlen mal einen Blick hinein zu werfen.

