Top 10 - Mai 2017
Ein frischer Monat bringt bekanntlich auch eine frische Top 10 News und hier ist sie. Die Liste befindet sich im unteren Teil der News und beinhaltet eine gute Zusammenfassung des letzten Monats, schaut also mal rein. Auch ein paar ältere News sind dabei, was sie aber nicht weniger interessant macht. Sehr freut mich das neben Gewinnspiel-News und Angeboten auch meine I’m a coder News sehr gerne und oft gelesen werden. Denn in ihnen steckt viel persönliches und einiges was ich gerne mit euch teilen möchte. Falls ihr in diesem Bereich Wünsche oder Anregungen habt meldet euch gerne in den Kommentaren und ich versuche auf eventuelle Wünsche einzugehen.
Proaktive Sicherheit in der IT - Gibt es das
Ransomware, Trojaner und was es nicht noch alles schönes gibt - auch der eine oder andere Hacker ist da draußen - und trotzdem wird abgewartet bis mal wieder irgendwo ein Software-GAU Auftritt. Dann wird Besserung gelobt, ca. 14 Tage lang werden Updates ganz penibel durchgeführt und alle Systeme auf den neusten Stand gebracht. Danach ebbt die Motivation schnell wieder ab und im täglichen Trott geraten derartige Pflichten schnell wieder ins Hintertreffen. Dies ist meiner Meinung nach eines der größten Probleme welches wir derzeit im IT Bereich haben. Ich habe zwar keine tiefen Einblicke in die IT der großen oder kleinen Unternehmen dieser Welt, aber man hört und sieht ja so einiges. Meistens wird reagiert und das langsam, sobald etwas passiert. Denn aktiv die IT zu pflegen, bevor alles auseinanderfällt, ist scheinbar nicht rentabel. Was mich durchaus wundert wenn man Entwicklungen bei z.B. Yahoo betrachtet und die Schäden welche durch die Hacks entstanden sind. Ganze Firmen können durch derartige Probleme empfindlich geschädigt werden und dies betrifft nicht nur die reinen IT und Software Unternehmen. Heutzutage ist IT die Basis der meisten großen und kleinen IT Unternehmen. Dabei ist es egal ob es um die Fertigung, Entwicklung, Planung oder die Beschaffung geht, alles ist IT gestützt. Fällt eine Komponente aus ist man aufgeschmissen und interagieren diese auch noch mit Kunden wird schnell der gesamte Ruf geschädigt. Ich frage mich ob hier tatsächlich noch die reinen Zahlen gegeneinander gerechnet werden oder ob hier vielleicht endlich mal ein Umdenken stattfindet und man mal etwas weiter über den Tellerrand schaut. Denn ja es ist anstrengend Dinge aktuell zu halten, wobei das auch nur wenn z.B. alte Software mit an den Updates hängt, denn ansonsten sind es meistens wenige Klicks, sofern man es regelmäßig macht. Alles in allem wäre meine naive Sicht auf die Dinge das man diverse Hacks, Virenangriffe und ähnliches durch ein proaktives Denken minimieren oder sogar komplett verhindern könnte. Denn viele der heutigen großen Angriffe, welche es denn in die Medien schaffen, basieren auf Angriffsvektoren die durch schlecht gepflegte und alte Software entstehen und auf aktuellen Systemen gar nicht mehr existieren würden. Ich selber versuche für meine Systeme, Server und IT generell dieses proaktive Denken in meiner kleinen IT-Welt umzusetzen und bis dato läuft dies eigentlich sehr gut. Vielleicht sollten auch die großen mal schauen ob ein paar Stunden die Woche nicht entbehrlich sind, um vielleicht die nächste große IT-Katastrophe zu verhindern bevor sie überhaupt aufkommt.
I'm a coder - KW 19
Diese Woche geht es um beliebte und weniger beliebte Bereiche beim Programmieren. Denn Softwareentwicklung ist vielseitig und vor allem wenn man alleine arbeitet, häufig aber auch im professionellen Umfeld, muss man diverse Bereiche abdecken können. Dazu gehören Arbeiten am Netzwerk, Backend Aufgaben und natürlich auch die Erstellung und Erweiterung der UI. All diese Bereiche sind wichtig, doch man hat natürlich seine persönlichen Präferenzen. Ich persönlich setze mich trotz der Komplexität gerne mit Netzwerkaufgaben auseinander. Die Interaktionen über egal welche Art von Netz finde ich extrem interessant, auch wenn es nicht immer ein Spaß ist mit APIs zu reden, vor allem wenn sie nicht unter der eigenen Kontrolle stehen. Auch der Kern einer App, mit all den Models, Interaktionen und Abstraktionen, gefällt mir durchaus gut. Hier sieht man zwar selten was man exakt tut direkt auf dem Bildschirm, aber das Funktionen im Kern tun was sie sollen ist durchaus erfüllend. Interessanterweise ist meine Achillesverse die UI Entwicklung und das obwohl ich sehr gerne direkt sehe was meine Änderungen aktiv tun. Ich bin nicht sonderlich kreativ in diesem Bereich und vor allem stört es mich sehr immer wieder herumprobieren zu müssen, wenn Dinge minimal vom Design abweichen. Durch dieses hin und her bin ich von der UI Entwicklung oft frustriert und das obwohl mir das XML Konstrukt, welches Android nutzt, gut gefällt. Am Ende läuft alles, aber der Zeitaufwand ist meiner Meinung nach häufig unverhältnismäßig, auch wenn die UI natürlich extrem wichtig ist, denn sie ist das was der Nutzer sieht und was er nutzen soll. Wie sieht es bei euch aus, was sind eure Favoriten und wo würdet ihr lieber die Finger von lassen?
I'm a coder - KW 18
Heute geht es darum wie schwer es mir manchmal fällt private Projekte fertigzustellen. Das der Start schwer ist hatte ich bereits erwähnt, doch wenn man diesen überwunden hat läuft es meistens. Interessanterweise fällt mir allerdings der Abschluss von Projekten ähnlich schwer. Vielleicht will ich einfach nicht fertig werden oder aber mich stört eventuelles negatives Feedback, doch beides sollte ja eigentlich kein Problem sein. Denn ein Abschluss eines Projektes bedeutet mehr Zeit für neues und negatives Feedback ist meistens am hilfreichsten, denn nur so kann man sich wirklich gut verbessern. Trotzdem habe ich unterbewusst das eine oder andere Problem mit diesen Situationen. Ich selber versuche mir Deadlines zu setzen und mich strikt an dieser zu halten, sodass ich nach Abschluss der Coding Phase den Release innerhalb weniger Wochen mache und nicht Monate lang warte. Dies klappt nicht immer, aber es hilft mir auf jeden Fall. Manchmal erwähne ich den Release auch bewusst z.B. hier im Blog, um einen gewissen Druck für mich selbst aufzubauen. Wie sieht es bei euch aus, geht es euch ähnlich und falls ja wie geht ihr dagegen vor?
I'm a coder - KW 17
Nachdem ich bereits seit einigen Wochen versuche die vor einiger Zeit ausgelassene I’m a Coder News aufzuholen, will ich dies nun endlich nachholen. Das Thema sind Annotations. Also kleine, meistens durch ein @ gekennzeichnete, Strings an Klassen, Methoden, Feldern und wo man sie nicht noch alles findet. Sie erlauben uns diverse Dinge einfacher umzusetzen und ersparen meistens unnötigen Boilerplate Code. Allerdings sollte man immer aufpassen alle Annotations unter allen Entwicklern gleichermaßen bekannt zu machen, denn sonst wird der Code unverständlich. Sofern aber alle Entwickler eines Projekts mit Annotations arbeiten, wird der Code schnell übersichtlich und teilweise sogar besser verständlich. Allem voran wird er aber minimiert und entsprechend auch die Schreibarbeit. Beispiele sind hier Butter Knife open_in_new, eine Annotation basierte Möglichkeit, um diverse Operationen rund um Views in Android zu vereinfachen. Ebenfalls im Android Bereich, allerdings wesentlich tiefgehender, ist Dagger open_in_new unterwegs. Dagger wird für Dependency Injection open_in_new genutzt und nutzt dabei umfangreich Annotations. Beide Libraries verwende ich ausgiebig in privaten, wie auch in professionellen Projekten. Ich kann euch nur raten Annotations mal genauer unter die Lupe zu nehmen, vor allem im Java und Android Bereich sind selbige schon umfangreich in Nutzung.
Top 10 - April 2017
Es ist der erste Mai und dies bedeutet wir haben frei. Zusätzlich bedeutet dies aber auch, dass es Zeit für die Top 10 des letzten Monats ist. Dieses Mal überpünktlich und gewohnt im unteren Teil der News in Form einer Liste dargestellt. Die Sortierung ist wie immer nach Anzahl der Klicks absteigend. Die Mischung ist dieses Mal sehr bunt, denn es sind alte und neue News dabei, Inhalte aus Gaming und dem Coding Bereich sind vertreten und auch ein paar Informationen zu Angeboten findet ihr dort. Schaut also ruhig mal rein.
I'm a coder - KW 16
Heute geht es um Reviews, denn auch wenn sie häufig eher störend oder langwierig scheinen, so haben sie durchaus ihre Berechtigung. In meinen privaten Projekten gibt es sie nicht wirklich, höchstens Tests durch Freunde oder Kollegen gibt es. Aber niemand schaut sich meinen Code an. Auf der Arbeit sieht dies anders aus, denn nur nach dem Vier-Augen-Prinzip landet etwas auf dem Entwicklungs-Branch. Mit dieser Haltung verhindert man Unachtsamkeitsfehler und auch die Code Guidelines werden mit höherer Wahrscheinlichkeit eingehalten. Manchmal ergibt sich daraus Mehrarbeit, aber dafür ist der Code hoffentlich ordentlicher und vor allem richtiger. Privat fände ich dies von Zeit zu Zeit glaube ich auch praktisch, allerdings nicht dauerhaft. Denn wenn ich für mich ein paar Zeilen schreibe, möchte ich nicht unbedingt auf Kleinigkeiten hingewiesen werden, welche mir vielleicht sogar klar oder eventuell auch egal waren. Wie sieht es bei euch aus, macht ihre Reviews und wie findet ihr dieses Vorgehen?
I'm a coder - KW 15
Diese Woche möchte ich ein paar Worte darüber verlieren warum ich eigentlich Android als Plattform meiner Wahl gewählt habe. Selbiges war schon recht früh klar, da meine ersten Smartphones durchweg Android Geräte waren. Kombiniert man dies nun damit das ich gerne entwickle, begann automatisch das Interesse am selber Erstellen von Apps. Zu Beginn eher minimal, doch später wurde es mehr. Innerhalb des Studiums konnte ich dann noch einige Chancen ergreifen Android Code zu schreiben und somit festigte sich das Interesse. Java Vorwissen aus dem schulischen Umfeld erleichterte den Einstieg hier immens. Konkurrenten waren bekanntlich Microsoft, was mich leider noch nie wirklich reizte, zusätzlich waren sie etwas zu spät für mich dran und Apple. Letztere ist nicht gerade meine Lieblingsfirma und somit standen die Chancen schlecht, dass ich für diese Plattform entwickle. Den Todesstoß für eine eventuelle Entwicklung von iOS Apps war aber definitiv die Hürde einen Mac besitzen zu müssen. Denn nur so kann man die Apps ordentlichen bauen und deployen. Das ist der Hauptgrund warum ich immer einen großen Bogen um iOS gemacht habe. Somit werden wohl auch kleinere Experimente im Gaming-Bereich, welche ich tatsächlich mal vorhabe irgendwann in die freie Wildbahn zu entlassen, nie auf iOS landen, außer sie sollten in irgendeiner Art und Weise erfolgreich sein. Alles in allem blieb ich bei meiner Hauptplattform also einfach bei den von mir genutzten Geräten und den bekannten Sprachen. Etwas langweilig könnte man nun sagen, allerdings beschäftige ich mich nebenbei ja mit diversen anderen Sprachen und Themen im Bereich Entwicklung. Ich persönlich bin mit einer festen Basis (Java + Android) und einem größeren Blick über den Tellerrand übrigens meistens gut gefahren und kann diese Art der Fokussierung nur empfehlen. Dabei meine ich nicht die konkrete Plattform + Sprache, sondern die gute Basis und zusätzlich der Sprung in fremde Gewässer.
Frohe Ostern
Leider sind die freien Tage fast schon wieder vorbei, aber noch können wir die etwas ruhigere Osterzeit genießen. Ich hoffe ihr hattet und habt noch ein paar schöne und ruhige Tage, auch wenn das Wetter mal eher wechselhaft ist. Eine Runde Zeit mit der Familie verbringen ist auch immer wieder eine gute Idee. Gegen Abend kann man dann die Games rausholen und mit den Freunden zusammen eine feine Runde zocken. So kann man sich erholen, sorgt aber auch für die nötigen sozialen Interaktionen. So läuft das ganze zumindest bei mir ab. Doch egal wie es bei euch ist, ich hoffe zumindest friedlich und entspannend. Frohe Ostern. Wer sich fragt woher das Bild kommt, folgt diesem Link zur mathematischen Darstellung eines Ostereis open_in_new (von 2014 via Stefan Keuchel open_in_new).
I'm a coder - KW 14
Wer programmiert muss irgendwie den Überblick behalten, sowohl im Bereich Issues, wie auch bei der allgemeinen Dokumentation. Außerdem möchte man seine Software vielleicht verteilen und dies vielleicht sogar Open Source. Wie ich dies mache möchte ich heute in meiner wöchentlichen I’m a Coder Rubrik mit euch teilen, denn das Thema lautet Versionsverwaltungsplattformen und Kollaborationstools. Ich selber habe einige private Projekte, wobei auch diese noch einmal in verschiedene Kategorien gehören. Zum einen entwickle ich zum Spaß kleinere Spiele und nehme mit diesem z.B. am Ludum Dare Game Jam Teil. Dies sind aktuell keine ernsten Projekte, sondern eher kleine, lustige und lehrreiche Versuche. Weiter geht es mit lockeren Projekten mit Freunden und Kollegen, auch hier probieren wir eher herum. Ein Beispiel ist hier die Entwicklung eines Minecraft Mods, was allerdings direkt am Start wieder eingeschlafen ist. Als nächstes kommen private Projekte relevanterer Natur, teilweise Open Source, teilweise Closed Source. Die höchste Stufe bei meinen privaten Projekten sind ernst gemeinte Projekte, gemeinsam mit Freunden und Kollegen, welche dann zum Großteil vorerst Closed Source bleiben. In diesen Bereichen gibt es dann noch Abstufungen und Zwischenschritte, denn die Grenzen sind schwammig. Ich nutze sehr unterschiedliche Plattformen, um diese ganzen Bereich abzudecken, dazu findet ihr mehr im unteren Teil der News. Alle Tools die ich aktuell nutze sind kostenfrei, zumindest im Rahmen wie ich sie nutze (weniger als 5 Personen, bzw. keine oder wenige private Repositories bei manchen Anbietern).