Lets Code - Bachelorarbeit Teil 1 - Das Grundgerüst

Auch wenn dieser Teil meines Uni-Lebens schon so länger her ist, heute möchte ich nun endlich mit einer kleinen Erklärung zu meiner Bachelorarbeit beginnen. Das Grundgerüst des Spiels, welches ich im Rahmen der Bachelorarbeit entwickelte, ist dabei mein heutiges Thema. Doch vorweg erst einmal kurz warum ich ein Spiel entwickelte. Der Grund dafür war die Idee neue Steuerungskonzepte auf ihren Erfolg hin zu testen, dieser sollte dabei durch eine Steigerung der User Experience gemessen werden. Das Spiel war also mehr Mittel zum Zweck und ist aus diesem Grund eher funktional aufgebaut und nicht mit dem Fokus auf Spielspaß programmiert worden.
Boehrsi.de V7 - Inhalte komprimieren

So langsam habe ich fast alle Themen bezüglich der Optimierung meines Web-Servers abgearbeitet und heute ist die Komprimierung von Inhalten das Thema. Dafür nutze ich, da Apache der Webserver meiner Wahl ist, das Apache Modul mod_deflate open_in_new. Selbiges habe ich relativ simpel konfiguriert, wobei ich mich wie schon zuvor erwähnt an die Einstellungen von html5boilerplate.com open_in_new halte. Denn diese waren bis jetzt extrem gut und brachten mir nur Vorteile. Diese haben sich im Vergleich zu meiner Konfiguration schon wieder etwas verändert aber dort werde ich größere Anpassungen erst wieder beim nächsten Umfangreichen Update durchführen oder aber wenn Fehler auftreten. Im unteren Teil findet ihr meine konkrete Vorgehensweise.
Boehrsi.de V7 - Bilder serverseitig optimieren

Einer der größten Datenproduzenten bei der Übertragung von Homepage-Daten sind Bilder. Selbige einfach wegzulassen sollte man allerdings nicht versuchen, denn was wäre eine Seite ohne Bilder. Aus diesem Grund muss man Bilder entsprechend optimieren. Das bedeutet zum einen die richtigen Formate zu verwenden und auf der anderen Seite die Bilder mit verschiedenen Tools so anzupassen, dass man hier und dort ein paar Bits und Bytes sparen kann. Denn insgesamt erreicht man dadurch tatsächlich eine spürbare Verkleinerung der Daten.
FileSize - Umfangreiches Update auch im Backend

Heute möchte ich die zweite News zum Update meiner App FileSize online stellen, dieses Mal geht es um alles was sich im Hintergrund geändert hat. Denn hier hat sich einiges getan, was quasi allen Nutzern sehr zugute kommen sollte. Hier geht es allem voran um die Performance, welche ich wirklich stark steigern konnte. Doch beginnen möchte ich kurz mit einigen Bugs die ich behoben habe. So dürfte die App nun keine Speicherprobleme mehr auf Geräten mit stark begrenzten Ressourcen bekommen und zusätzlich habe ich diverse Fehler, welche zwar selten auftraten aber vorhanden waren, behoben. Die sollte der Stabilität sehr zuträglich sein. Doch nun zurück zur Performance, welche ich im Bereich der Scans um ca. 50 oder mehr Prozent steigern konnte. Dies verdanke ich einem extrem optimierten herangehen an das eigentliche Scannen. Doch nicht nur die Geschwindigkeit konnte ich mess- und spürbar optimieren, auch die Speichernutzung konnte ich um ca. 80 oder mehr Prozent reduzieren. Auch wenn diese Zahlen recht hoch wirken, ich übertreibe hier nicht und diese Zahlen basieren auf einigen Tests mit meinem Nexus 5. Außerdem freue ich mich sagen zu können, dass die Optimierungen unabhängig von der Anzahl der Dateien funktionieren und grundsätzlich sogar effektiver werden, umso mehr Dateien vorhanden sind. Dies ist natürlich immer im Verhältnis zur alten Version der App zu sehen. Alles in allem bietet die neue App Version dann also mehr Stabilität, wesentlich mehr Geschwindigkeit und wie in der ersten News zum Thema schon erwähnt, ein stark verbessertes Interface. Dieses setzt nun auch auf die neuen GUI Elemente von Android und ist außerdem bereit für weitere Änderungen die z.B. mit Android L kommen werden. Wie ich diese Optimierungen erreichen konnte, werde ich in einer gesonderten eher Programmierer orientieren News verarbeiten, selbige sollte bald erscheinen. Der eigentliche Release des hier angesprochenen Updates ist für diese Woche geplant, aktuell führe ist gerade letzte Tests durch.
FileSize - Umfangreiches Update erscheint in wenigen Tagen

Seit einiger Zeit arbeite ich an einer stark verbesserten Version meiner App FileSize open_in_new (Google Play open_in_new). Dies ist auch der Grund warum die bis dato ca. monatlich erschienenen Updates aktuell etwas ins Stocken geraten sind. Dies soll sich nun ändern, denn besagtes großes Update steht kurz vor der Veröffentlichung und wird diverse Änderungen beinhalten. Dies betrifft sowohl das Backend, wie auch die wirklich sichtbaren Dinge für den Nutzer. Ich möchte euch nun einige der Änderungen vorstellen und diese im weiteren dann wohl auch in meinen Coding News verarbeiten. Aufgrund der Länge teile ich die News in zwei Teile und möchte heute vor allem auf die sichtbaren Änderungen eingehen.
Boehrsi.de - Optimierte Homepage und Seite für Unterstützer

Eine kleine News in eigener Sache, denn ich habe mal wieder etwas an meiner Seite gearbeitet. Denn was gibt es besseres als nach einer Runde für die Uni zu programmieren, noch eine Runde für sich selbst etwas zu schreiben. Spaß bei Seite und zurück zum Thema und den Änderungen, welche meine Seite auf Homepage Version 7.2 und Code Version 7.3 bringen. Einige Änderungen gab es im Projekte Bereich und dort vor allem beim Bugtracker. Es wird nun die Eingabe der Daten mittels JavaScript etwas vereinfacht und ich habe die letzten “reinen” JavaScript Codes gegen jQuery ausgetauscht. Außerdem sieht man nun bevor ein Bug eingetragen wird alle aktuellen und noch nicht bearbeiteten Bugs, so möchte ich doppelte Eintragungen verhindern. Zusätzlich habe ich bei den Projekten nun die Möglichkeit FAQ oder Hilfe Seiten anzulegen, wie z.B. hier zu sehen. Als weitere große und vor allem sichtbare Änderung habe ich eine neue Unterseite erstellt. Diese ist für Nutzer gedacht die mich unterstützen wollen, wenn z.B. ein Beitrag ihnen geholfen hat oder ähnliches. Auf dieser Seite gibt es sowohl eine Paypal Spenden Funktion, wie auch den Link zu meinem öffentlichen Amazon Wunschzettel. Eingebaut habe ich diese Seite weil ich darauf angesprochen wurde und eher weniger aus eigener Motivation. Die weiteren Änderungen sind nicht sichtbar aber dafür vielleicht spürbar, denn ich habe den CSS Code stark minimiert und so die Ladezeiten verbessert. Diverse kleinere Bugfixes gab es in der letzten Woche bereits und die verschiedenen Unterseiten haben nun aussagekräftige Titel, damit Google diese entsprechend anzeigt.
Boehrsi.de V7 - Code Minimierung

Wenn man weniger Daten laden muss geht alles schneller, klingt logisch oder? Dementsprechend soll man versuchen den Code, der an den Nutzer gesendet wird, zu minimieren. Es geht hierbei nicht darum was z.B. im PHP Backend passiert, sondern um die finalen Daten die transferiert werden müssen. Es ist dabei relevant HTML zu entschlacken aber auch JavaScript und CSS sollten nicht vergessen werden. In diesem Zuge habe ich durch die Umstellung auf einen komplett neuen HTML5 Code alles etwas “einfacher” gehabt. Denn dadurch achtete ich natürlich automatisch auf einen möglichst minimalen Unterbau. Ich verhinderte von Anfang an Inline CSS Nutzung und platzierte CSS direkt in Elementen ohne extra Klassen einbinden zu müssen. Außerdem legte ich möglichst viele ähnliche CSS Klasse zusammen und wendete sie auf diverse HTML Elemente an. Einzelne Unterschiede wurden dann extra abgearbeitet und insgesamt denke ich mit dieser Technik sehr gut gefahren zu sein. Vor der Auslieferung der CSS Datei an den Nutzer habe ich dann noch das Tool cssmin.js open_in_new über meine CSS Datei laufen lassen und konnte auch hier noch ein paar Bytes heraus holen. JavaScript versuche ich möglichst wenig zu nutzen, auch wenn die Möglichkeiten vielfältig sind. Dies ist damit begründet das man JavaScript blockieren kann und ich bin der Meinung eine Seite sollte grundsätzlich immer grundlegend funktionieren, auch ohne extra Skripte. In diesem Bereich erreichte ich die Minimierung also quasi einfach schon durch meine Vorstellungen von JavaScript Integrierung. Den wenigen Code den ich schrieb, erstellte ich in jQuery, was noch einmal etwas Masse spart. Aus diesem Grund nutzte ich kein weiteres Tool zur Code Minimierung, wie zum Beispiel JSMIN open_in_new. Alles in allem läuft meine Seite nun sehr schnell aber trotzdem möglichst Standard Konform, was häufig ein Problem ist.
Lets Code - Mehr Programmierung und Entwicklung auf Boehrsi.de

Vor ein paar Tagen erwähnte ich, dass es mich etwas stört das Spiele nunmehr den Großteil meiner Blog Beiträge ausmachen und ich gerne etwas mehr Abwechslung rein bringen möchte. Worum es dabei geht möchte ich hier nun minimal zusammenfassen und eine kleine Übersicht über die Dinge, die da kommen werden, geben. Es wird um diverse Programmier-Themen gehen, welche zu einem gewissen Teil im Android und Java Lager angesiedelt sind aber auch einiges in Richtung Web Development möchte ich verbloggen. Zusätzlich habe ich eine Reihe Libraries, Tools und APIs die ich mir ansehen möchte. Die Ergebnisse werde ich dann auch hier festhalten und ich würde mich freuen mit euch über diese diskutieren zu können. Unter anderem werde ich mir CloudFlare open_in_new ansehen, den GitHub Editor Atom open_in_new testen, den HTTP Client OkHttp open_in_new und dessen API ausprobieren und das Play Framework open_in_new mit euch betrachten. Letzteres wird wohl relativ umfangreich abgearbeitet werden, denn es kommt in meiner Masterarbeit zum Einsatz, über welche ich auch noch berichten werden. Außerdem werde ich endlich auf meine Bachelorarbeit eingehen und diverse Themen meiner aktuellen Android Entwicklung (z.B. die Migration von ActionBarSherlock open_in_new auf ActionBarCompat open_in_new und wie wichtige die Programm Optimierung selbst bei kleinen Apps ist) erwähnen. Die Liste war nun ziemlich durcheinander und hat keinen Anspruch auf Vollständigkeit aber ich denke sie vermittelt einen ungefähren Einblick in die kommenden Inhalte hier im Blog. Ich hoffe eure Meinungen und Ideen zu den jeweiligen Themen in den Kommentaren zu finden und freue mich über eine neue Welle an tiefer gehenden Beiträgen hier im Blog.
Boehrsi.de V7 - Korrekte Positionen für Skripte und CSS

Auch in der heutigen Zeit der Parallelität, ist es noch sehr wichtig an welchen Stellen man Code in seiner Homepage platziert. Dies gilt vor allem für externen Skripte und Style Dateien. Denn liegen Scripte an unpraktischen Stellen, kann es dazu kommen das sie den kompletten weiteren Ladevorgang der Seite blockieren und somit die eigentliche Darstellung merklich und unnötig verzögern. Es gibt verschiedene Vorschläge wie man am besten vorgehen kann und ich habe mich wie im unteren Teil der News beschrieben entschieden.
Filesize - Update mit Themes

Am gestrigen Dienstag veröffentlichte ich die Version 1.2 meiner App FileSize für Android. Diese enthält neben kleineren Fehlerbehebungen auch ein neues Theme. Somit könnt ihr nun zwischen einem hellen oder dunklen Theme wählen. Dabei ist das helle Theme von nun an Standard. Außerdem wurden kleinere Änderungen vorgenommen, um spätere Änderungen an Themes und Aussehen der App besser umsetzen zu können. Weiterhin freue ich mich bald die 500 Downloads Grenze zu knacken. Falls auch ihr gerne schnell und übersichtlich große Dateien auf eurem Androiden finden und entfernen wollt, solltet ihr vielleicht auch mal in die Related Links schauen und die App ausprobieren.

