Code Beispiele für Android Lollipop

STAMP

Mit der Einführung von Android 5.0 Lollipop , hat Google mehr als 20 neue Codebeispiele veröffentlicht um den Entwicklern die neuen Funktionen zu präsentieren. Die Codebeispiele kann man ganz einfach im Android Studio 1.0 importieren, compilieren, installieren und ausprobieren :-).

Einfach im Menü unter “Datei” > “Import Sample” das Beispiel auswählen. Android Studio 1.0 erstellt automatisch ein neues Projekt für das Beispiel so dass man mit den Beispiel Code nach belieben herumexperimentieren kann.

Links:
http://android-developers.blogspot.de/2014/12/new-code-samples-for-lollipop.html
http://developer.android.com/samples/new/index.html?utm_campaign=lollipopsamples-1214&utm_source=dac&utm_medium=blog

Canva macht einen Designer aus mir :-)

STAMP (1)

Dank Canva bin ich zum Designer geworden. Seit ich mir vorgenommen habe, jeden Post mit einem Bild zu versehen, habe ich nach einer Lösung gesucht, die mir dabei hilft, schnell und einfach ein solches Bild zu erstellen.
Dabei habe ich schon so einiges ausprobiert und sogar schon angefangen, etwas eigenes zu programmieren. Doch dann habe ich Canva entdeckt.

Zitat:
“The easiest to use design program in the world”
The Webbys

Zitat:
“Canva enables anyone to become a designer”
PSFK

Dank Canva kann jeder zum Designer werden … sogar ich. Ich habe es natürlich direkt ausprobiert und war positiv überrascht, wie einfach es ist, mal schnell etwas zusammen zu klicken. Dabei hat mir die intuitive Bedienung und die vielen verfügbaren Elemente sehr geholfen. Das erste Ergebnis kannst Du ja hier schon bewundern (siehe oben).
Aber ich höre schon die Stimmen der ewigen Zweifler und derer, die sich schon vor Canva als Designer bezeichnet haben.

„Designen ist mehr als das herum schubsen von Elementen.„
„ A fool with a tool is still a fool”
„So ein Dienst kann den richtigen Designer nicht ersetzen.“
„Designer brauche viel Erfahrung, um ein gutes Design erstellen zu können“
„Designen ist eine Kunst und kein Handwerk“

Aber trotz der (vermutlich gerechtfertigten) Kritik ist Canva gut geeignet, um mal kurz eine Postkarte oder eine Grafik für ein eBook, eine Präsentation oder eine Infografik zu erstellen, ohne gleich eine Adobe Lizenz kaufen zu müssen.

Wie funktioniert denn dieses Canva nun?

Der Designer würde sagen: „Ein Bild sagt mehr als tausend Worte“ aber ein Video tu es auch :-).

Wie man im Video sieht ist Canva kinderleicht zu bedienen und liefert (in meinen Augen) brauchbare Ergebnisse, die sich nicht verstecken müssen. Sofern man einen Hauch von Begabung mitbringt. Für diejenigen, die kein Talent haben, wird sogar eine „Design Schule“ angeboten. In dieser Design Schule kann man die Grundlagen guten Designs lernen.

Was kostet Canva?

Canva ist kostenlos. Auch wenn dahinter natürlich kommerzielle Interessen stecken kann Canva kostenlos genutzt werden. Kosten entstehen nur, wenn man die „Premium Bilder“ verwenden möchte. Ein Bild kostet im Moment 1$. Das ist nicht sehr viel und auch wenn man nur die kostenlosen Bilder und Design Elemente verwendet. kann man schon eine Menge machen.

Fazit

Canva ist ein Design Tool, mit dem der Anfänger schnell die ersten Erfolge sieht, auch wenn ein Profi Designer nicht ersetzt werden kann. Allerdings ist das Tool ideal geeignet, wenn man ein schmales Budget hat.

Canva

Falls Du ein Design mit Canva erstellt hat, hinterlasse mir doch einfach hier einen Kommentar mit einem Link zum Design. Ich bin schon gespannt auf die Kreationen.

Google Developer Content ist nun auch offline verfügbar

DEV_KIT_2_1

Jeder, der schon mal für Android entwickelt hat und kein Internet hatte kennt das Problem der Informationsbeschaffung. Wichtige Informationsquellen wie z.B. Stackoverflow, die Google API, Vogella und die endlosen Blogs und Tutorials sind plötzlich nicht mehr erreichbar.
In einer Welt in der „Always Online“ realität geworden ist, ist das eigentlich ein fast undenkbarer Zustand. Aber nicht überall auf der Welt ist das so und auch in Deutschland gibt es noch Dunkle Punkte auf der Internet Landkarte.

Besonders als ein Mobiler Software Entwickler der oft in Bus und Bahn unterwegs ist und mit einer mobilen Entwicklungsumgebung wie z.B. AIDE arbeitet sind Funklöscher und aufgebrauchtes Datenvolumen ein echtes Problem. Irgendwie trifft es einen immer im falschen Moment.

Aus diesem Grund habe ich mir vor längerer Zeit einmal die App IT42 entwickelt.
Die App ist optimal an die Bedürfnisse mobiler Android Entwickler angepasst und enthält die 100.000 besten “Stackoverflow.com” Topics für Android Entwickler.

Nun hat Google das Problem auch erkannt und die eigenen Google Developer Ressourcen zum Download zur Verfügung gestellt.
Darin enthalten sind:

• The entire I/O Dev Bytes Series
• Full Google Udacity course videos (Android, App Engine, HTML5 games, UX, Mobile Web)
• The entire Android Website: http://developer.android.com
• Material Design docs from http://google.com/design
• Web Fundamentals documentation from http://developers.google.com/web
• The Google Cloud Platform docs from https://developers.google.com/cloud,
• Android, Cloud, and Design videos from the Google Developers YouTube channel

Alles in allem sind das ca. 30 GB Daten. Viel zu viel um alles auf einem Android Tablett oder Smartphone immer bei sich zu haben. Als Typische Zielgruppen und Anwendungsgebiete werden im Readme z.B. Code Labs, Hackathons, Viewing parties, Reference and self study, Udacity study und Hosted within local intranet angegeben.

Da die Inhalte alle unter der Creative Commons und der Apache Lizenz stehen, darf der Inhalt auch ausdrücklich unter Einhaltung der Lizenzbedingungen weitergegeben werden.

Leider ist mir der Download momentan verwehrt. Beim Versuch eine der Zip Dateien herunter zu laden bekomme ich immer den Fehler „Diese Datei kann momentan nicht angezeigt oder heruntergeladen werden.“. Also heißt es Geduld haben und noch ein wenig warten bevor ich eine Offline Kopie der Google Developer Unterlagen mein eigen nennen kann.

Google Drive – Quote überschritten

Ich bin jedenfalls schon sehr gespannt darauf, alle Daten offline zu haben. So kann man besser und effektiver suchen und damit auch programmieren.

Links:
Bandwidth challenged? Amazing Google Developer content is now available offline

Update (05.12.2014)

Nun hat Google doch noch eine Lösung gefunden und man kann die Dokumente nun über die Links auf der Seite https://sites.google.com/site/gdgdevkitpilotreadme/home/downloads downloaden.
Nachdem ich nun schon langsam an der Kompetenz von Google gezweifelt habe, Dateien zum Download zur Verfügung zu stellen, ist das Nikolaus Geschenk für mich doch noch pünktlich angekommen. :-)

Ein App Icon erstellen

Jedes mal, wenn ich wieder eine App programmiert habe und sie im Play Store veröffentlichen möchte, stellt sich mit die Frage nach dem richtigen App Icon. Das App Icon ist das erste was der der zukünftige Nutzer der App zu Gesicht bekommt und der erste Eindruck ist bekanntlich der wichtigste.

Das App Icon sagt bereits viel über die Qualität der App aus und muss das Gesamtbild der App harmonisch abrunden. Es sollte die Funktionalität beschreiben ohne sich in Details zu verlieren. Also ganz nach dem Motto. “Ein Bild sagt mehr als 1000 Worte.”

Entscheidet sich ein Nutzer dazu, die App zu installieren, wird das Icon von da an auf dem Smartphone oder Tablett sichtbar sein. Daher muss das Icon ansprechend gestaltet sein. Leider gibt es aber ganz unterschiedliche Persönlichkeitstypen, die ganz unterschiedlich angesprochen werden sollten. Einen schönen Beitrag zum Neuromarketing kann man unter http://www.sunlab.de/viele-wege-fuehren-nach-rom-zur-conversion-optimierung/ nachlesen.

Zitat:
“Es gibt 3 primäre Vektoren, die das Verhalten eines Menschen bestimmen: Stimulanz, Dominanz und Balance. Je nach Typ sind ein oder zwei dieser Vektoren besonders stark ausgeprägt, was dazu führt, dass ein Mensch einem bestimmten Persönlichkeitstyp zuzuordnen ist.”

Da ich mich aber eher als Programmierer sehe und ich nur sehr oberflächliches Know How über Neuromarketing oder Farbwahl habe gehe ich meistens eher pragmatisch vor.

Als erstes sehe ich mir mal die App Icons vergleichbarer Apps an, die schon bei Google Play gelistet sind. Meistens gibt es schon eine Reihe ähnlicher Apps (die dann aber nicht halb so gut wie meine eigenen Apps sind :-) ). Da ich meine Apps in erster Linie für mich selbst programmiere, bin ich auch die Zielgruppe und daher sollte ein App Icon das mich anspricht, auch andere potentielle Nutzer ansprechen …. hoffe ich.

Aktuell habe ich gerade eine Floating Stopuhr App erstellt, für die ich nun ein App Icon benötige. Also suche ich erst mal in Google Play nach “Stopwatch”.

stopwatch   Android Apps auf Google Play

Das Ergebnis zeigt eine Auswahl an möglichen Icons von existierenden Apps zum Thema “Stopuhr”. Mich persönlich spricht eher das “StopWatch & Timer” App Icon an. Das Icon ist klar, ohne viele Details und auf den ersten Blick ist klar, was die App für eine Funktion hat. Daher versuche ich mich bei der Auswahl/Erstellung meines eigenen App Icons daran zu orientieren.

Da ich leider nicht das Talent habe, ein App Icon zu erstellen, bediene ich mich vorhandener Cliparts, die ich bei verschiedenen Portalen finden kann. Bei der Auswahl ist immer darauf zu achten, dass die Lizenzbedingungen eingehalten werden. So sind mir Public Domain oder CC Cliparts natürlich am liebsten. Diese finde ich oft unter:

  • openclipart.org
  • iconfinder.com

    Daneben gibt es noch viele andere Protale, aber diese beiden sind mir die liebsten und ich finde in den meisten Fällen, was ich suche.

    Search results for  stopwatch  clipart   Openclipart
    Eine Suche in der Openclipart Bibliothek liefert doch schon ganz gute Ergebnisse und ich entscheide mich für eine recht schlichte Variante.

    dtjohnnymonkey_Stopwatch_(shaded_

    Da es sich bei den Bildern der Openclipart Bibliothek um Vektorgrafiken handelt, kann man diese mit einem Programm wie z.B. Inkscape nachträglich noch ganz einfach anpassen und nach den eigenen Bedürfnissen ergänzen. Nach ca. einer halben Stunde rumprobieren habe ich dann mein App Icon in einer Auflösung von 512×512 Pixeln. Das ist die Auflösung, die der Google Play Store für den Eintrag verlangt.

    Stopwatch

    Mit hilfe der vielen kostenlosen Cliparts ist es mir möglich, schnell und einfach ein App Icon zu erstellen, dass nicht aussieht, als hätte es ein 4-Jähriger mit Paint gemalt :-).

  • Mit diesen Programmierkenntnissen verdient man das meiste Geld

    In meinem Artikel Programmierung – Quo vadis? habe ich vor längerer Zeit mal die Top Themen für Software Entwickler zusammengestellt. Allerding ging es in der Auswertung nicht um Geld sondern um die Zukunft der Technologie.

    In diesem Artikel geht es mal nur um das Geld. Denn ein US Unternehmen hat eine Analyse gemacht und dabei die 12 wertvollsten Programmierkenntnisse identifiziert. Diese lassen sich vermutlich nicht 1 zu 1 auf den deutschen Markt übertragen. Trotzdem wird es in Deutschland einen ähnlichen Trend geben, der vergleichbare Gehälter ausspuckt.

    1. Ruby on Rails – $109,460
    2. Objective C – $108,225
    3. Python – $100,717
    4. JAVA – $94,908
    5. C++ – $93,502
    6. JavaScript – $91,461
    7. C – 90,134
    8. R- $90,055
    9. C# – $89,074
    10. Visual Basic – $85,962
    11. SQL – $85,511
    12. PERL – $82,513

    Meine persönliche Einschätzung zu den einzelnen Themen:

    Ruby on Rails

    Das Ruby on Rails auf Platz 1 steht verwundert mich wirklich. Es liegt vermutlich daran, dass es zu wenig Experten auf dem Gebiet gibt. Allerdings glaube ich nicht, dass sich jetzt noch ein Einstieg lohnt.

    Wie man in der Abbildung sieht, schwindet das Interesse kontinuierlich und langfristig wird Ruby nur ein Leben in der Nische fristen.

    Objective C

    Da ich selbst einige Erfahrung mit Objective C gemacht habe kann ich dazu nur sagen: “Wer Schmerzen mag kann sie hier bekommen und wird auch noch gut dafür bezahlt.”

    Python

    Den Hype um Python verstehe ich nicht. Die Programmiersprache hat schon einige Jahre auf dem Buckel, ist aber nicht tot zu kriegen. Erschienen ist sie schon 1991 und seit mindestens 10 Jahren it Python eine Programmiersprache, die auch im Enterprise Umfeld genutzt wird. Ich selbst habe in der Anfangszeit von Python mal ein Buch durchgearbeitet. Wir sind aber recht schnell wieder auseinander gegangen, da es einfach nicht gefunkt hat. Trotzdem begegnet mir Python im Alltag so oft, dass ich ständig in Versuchung komme, doch noch mal einen Annäherungsversuch zu wagen.

    Um mal Python im Vergleich zu Ruby und Objective C zu zeigen, habe ich hier noch mal den Google Trend der 3 Programmiersprachen im Vergleich erzeugt. Es ist klar zu erkennen, dass der Python Wert ca. 20 mal so groß ist wie der von Objective C und Ruby on Rails.

    Google Trends   Websuche Interesse  ruby on rails  objective c  python   Weltweit  2004   heute

    Java

    Java ist die Programmiersprache meiner Wahl. Ich bin ihr seit fast 20 Jahren treu und auch wenn ich immer wieder mal anderen Programmiersprachen hinterher schaue, bleibe ich doch bei Java … und das ist auch gut so :-).

    Hier noch mal Java und Python im Vergleich.
    Google Trends   Websuche Interesse  ruby on rails  java   Weltweit  2004   heute

    C, C++ und C#

    C und C++ haben auf jeden Fall eine Daseinsberechtigung und das wird auch noch lange so bleiben. C und C++ sind solide Programmiersprachen die es noch geben wird, wenn ich längs in Rente bin.

    JavaScript

    JavaScript hatte es in den Neunzigern nicht leicht. Irgendwie hat es nie richtig funktioniert, dann noch die Browserabhängigkeit (IE und Mozilla) und und und. Aber spätestens seit node.js, ECMAScript, Cloud und Co. ist JavaScript zu einem Überflieger mutiert der so gigantisch gewachsen ist, dass ich es fast noch immer nicht glauben kann und es geht noch weiter aufwärts.

    SQL

    Auch wenn es heute dank OR Mapping theoretisch auch ganz ohne SQL geht, so ist SQL doch in jedem Projekt von Nöten, dass irgendwie Daten in einer relationalen Datenbank speichert. Daher ist SQL auch ein Thema dass eine erfolgreiche Vergangenheit hat und dank Big Data eine noch erfolgreichere Zukunft haben wird.

    Sonstige

    Alle anderen Themen sind für mich nicht so relevant. So etwas wie R kenne ich ehrlich gesagt gar nicht und Visual Basic kann man für Excel oder Access benutzen. Pearl dagegen ist eher was für Masochisten, die kryptische Ausdrücke lieben, die sie selber nach 5 Minuten schon nicht mehr verstehen.

    Fazit

    Egal wofür man sich entscheidet. Arbeit gibt es auf jeden Fall genug und an den Gehältern kann man erkennen, dass Programmierer in der Regel nicht am Hungertuch nagen. Also ab die den nächsten Buchladen und erst man mit dem “Programmieren für Dummys” anfangen. Der Rest ergibt sich dann schon irgendwie.

    Quelle:
    http://qz.com/229570/here-are-most-valuable-skills-in-americas-tech-job-market/

    Top 8 Source Code Search Engines

    Als Programmierer ist mal ja angehalten, das Rad nicht ständig neu zu erfinden und irgendwann erkennt jeder Programmierer den Wert der Tastenkombination CTRL-C & CTRL-V. Mittlerweile gibt es so viele Quellen für die Suche in Open Source Quellcode, dass ich hier mal meine Top 10 Suchmaschinen für die Source-Code Suche zusammengestellt habe.

    Mein Top 7(+1) Source Code Suchmaschinen

    http://github.com/search

    Github.com ist mittlerweile eines der größten Code Repositories überhaupt und bietet eine sehr gute Suche, die nach Programmiersprache, Dateiname und vielem mehr filtern kann. Darüber hinaus gibt es sogar ein API mit dem man die Suche die vorhandene Systeme integrieren kann statt im Browser danach zu suchen.

    http://code.openhub.net/

    Aus koders.com ist code.openhub.net geworden. Auch hier gibt es eine einfache und schnelle Suche nach Open Source Quellcode in diversen Programmiersprachen, viele Filter (z.B. Nach Programmiersprache oder Dateiendung) und eine umfangreiche Abfragesprache mit der man die Suche verfeinern kann.

    http://searchcode.com/

    Sehr schnell und sehr sauberes Design. Diese Source Code Search Engine ist noch nicht so bekannt, hat aber einiges auf dem Kasten und kann mit den anderen gut mithalten.

    http://search.maven.org/

    Hier kann man nicht direkt die Sourcen von Java Klassen durchsuchen. Aber wenn man weiß, was man benötigt, kommt man schnell ans Ziel und kann sich viel Arbeit sparen. Da Maven aus der Java Welt kommt (Maven ist ein Build-Management-Tool der Apache Software Foundation und basiert auf Java. Mit ihm kann man insbesondere Java-Programme standardisiert erstellen und verwalten.), findet man hier allerdings nur Java Jar Files.

    http://www.dzone.com/snippets

    Snippets sind im Kommen. Auch das haben wir der Tastenkombination CTRL-C & CTRL-V zu verdanken und dzone hat unter http://www.dzone.com/snippets eine kleine aber feine Snippet Suche realisiert, die auch relativ häufig brauchbare Snippets liefert.

    http://snipplr.com/

    Eine weitere sehr gute Anlaufstelle für Snippets ist snippler. Hier findet man wirklich alles. Ich nutze es gerne für die Inspiration und finde jedes mal wieder etwas brauchbares. Mal hier ein Stückchen CSS, mal da eine Java Methode oder ein Filter für ein WordPress Plugin. Es ist für jeden was dabei und es gibt so viel. Einfach Toll.

    http://opensearch.krugle.org/

    Das Repository der Krugle Source Code Suche beherbergt momentan erst 164 Projekte mit 750.354 Dateien und 82.762.532 Quelltext Zeilen. Ich hoffe, dass hier in Zukunft noch mehr passiert, da die Suche auch gut und einfach zu nutzen ist und man nie genug Quellen für kostenlose Open Source Dateien haben kann.

    http://vanillaco.de/

    “Last but not least” Vanillacode. Eine Open Source Source Code Suchmaschine speziell für die Bedürfnisse der WordPress Plugin Entwickler zugeschnitten.
    Auch wenn Eigenlob bekanntlich stinkt, muss ich hier an der Stelle mal erwähnen, dass Vanillacode mein eigenes Werk ist und ich sehr zufrieden mit dem Ergebnis bin. Dank Vanillacode kann ich viel schneller mal ein WordPress Plugin entwickeln oder mir die Historie eines vorhandenen WordPress Plugins anzeigen lassen. Aktuell durchsucht Vanillacode gerade ca. 35.000 WordPress Plugins und bietet die Möglichkeit, nach Dateierweiterung, Plugin Name und Version zu filtern. Darüber hinaus kann Vanillacode auch verschiedene Such-Terme miteinander logisch miteinander verknüpfen (AND, OR, NOT, …). Wer gerne wissen möchte, wie ich auf den Namen Vanillacode gekommen bin, kann dies unter “http://en.wikipedia.org/wiki/Vanilla_software” nachlesen.

    Offener Brief an Mr. Wong


    Sehr geehrter Herr Wong,

    vielen Dank für das nette Angebot, aber ich habe momentan kein Interesse an dieser Geschäftsbeziehung. Auch wenn ich größere Geldbeträge sonst gerne entgegen nehme, muss ich es leider ablehnen. Mein Anlagenberater hat mir dazu geraten, da er hier irgendwo einen Haken vermutet.
    Ich persönlich habe in ihrer Email keinen Haken finden können, aber bisher bin ich mit den Empfehlungen meines Anlagenberaters immer gut gefahren und möchte auch dabei bleiben.
    Da ich sie unter ihrer persönlichen E-Mail Adresse nicht erreichen kann, möchte ich ihnen also auf diesem Weg noch einmal für das Angebot danken auch wenn ich es bedauerlicherweise ablehnen muss.

    PS: Falls Sie diesen Brief lesen, möchte ich sie bitten, mir noch einmal kurz mitzuteilen, wer mich ihnen empfohlen hat, um ihm mitteilen zu können, dass ich in derartigen Empfehlungen nicht genannt werden möchte.

    Mit freundlichen Grüßen
    Michael Jentsch

    … Ironie Aus :-)

    Formular Validierung in PHP mit der filter_var Funktion

    Die offizielle Beschreibung der Funktion filter_var unter http://php.net/manual/de/function.filter-var.php ist mit dem Satz „filter_var – Filtern einer Variablen durch einen spezifischen Filter“ doch eher ungenügend beschrieben, da die Funktion so viel mehr kann.

    Die Funktion wird wie folgt aufgerufen:

    mixed filter_var ( mixed $variable [, int $filter [, mixed $options ]] )

    Parameter:

    $variable Wert der gefiltert werden soll. Arrays werden rekursiv gefiltert.
    $filter ID des zu benutztenden Filters. Standard ist FILTER_SANITIZE_STRING.
    $options Assoziatives Array mit Optionen oder bitweise Disjunktion von Flags. Wenn der Filter Optionen akzeptiert, können Flags auch im “flags” Feld des Arrays angegeben werden. Für “callback” Filter sollte der callback-Typ angegeben werden.

    Return: Gibt die gefilterten Daten zurück oder FALSE wenn fehlgeschlagen.

    Als Filter können die folgenden Werte verwendet werden:

    Filter für die Validierung:

    Name Beschreibung

    FILTER_VALIDATE_BOOLEAN Return TRUE für “1”, “true”, “on” und “yes”, FALSE für “0”, “false”, “off”, “no”, und “”, für alles andere ist NULL der Rückgabewert
    FILTER_VALIDATE_EMAIL Email Validierung. Gibt die E-Mail Adresse zurück oder FALSE wenn fehlgeschlagen.
    FILTER_VALIDATE_FLOAT Float Validierung. Gibt einen float Wert zurück oder FALSE wenn fehlgeschlagen.
    FILTER_VALIDATE_INT Integer Validierung. Gibt einen int Wert zurück oder FALSE wenn fehlgeschlagen. Optional kann noch eine Range festgelegt werden.
    FILTER_VALIDATE_IP IP Adress Prüfung. Optional kann hier auf IPv4, IPv6 oder nur im Internet geroutete IP Adressen gefiltert werden.
    FILTER_VALIDATE_REGEXP Perl compatible Regular-Expression Validierung. Kann man auch machen, wenn man dem regulären Ausdruck vertraut :-)
    FILTER_VALIDATE_URL URL Validierung. Optional können hier die notwendigen URL Elemente wie z.B. FILTER_FLAG_SCHEME_REQUIRED angegeben werden.

    Neben den Filtern für die Validierung gibt es noch Sanitize Filter und die Möglichkeit eine eigene Callback Funktion zum Filtern der Daten anzugeben. Diese Filter möchte ich hier aber nicht weiter vertiefen und daher hier die Liste der Filter der Vollständigkeit halber.
    FILTER_SANITIZE_EMAIL, FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_MAGIC_QUOTES, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_SANITIZE_NUMBER_INT, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_SANITIZE_STRIPPED, FILTER_SANITIZE_URL, FILTER_UNSAFE_RAW, FILTER_CALLBACK

    Hier noch ein paar Beispiele für die Nutzung

    Validierung eine E-Mail Adresse mit Hilfe der Funktion filter_var:

    if (filter_var(mail@host.com', FILTER_VALIDATE_EMAIL)) { 
        echo 'VALID'; 
    } else {
        echo 'NOT VALID';
    }

    Validierung eine URL Adresse mit Hilfe der Funktion filter_var:

    if(!filter_var($url, FILTER_VALIDATE_URL)) {
      echo "URL is not valid"; 
    } else {
      echo "URL is valid";
    }

    Prüfung, ob es sich um eine private IP Adresse handelt mit Hilfe der Funktion filter_var:

    function is_private_ip($ip) { 
        return !filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE); 
    }

    Prüfung einer Variable, mit Hilfe eine Callback Funktion auf die Länge eines Strings

    function min10($str){
       if (strlen ($str) < 10) return false;
       return $str;
    } 
    
    echo filter_var("hello world",FILTER_CALLBACK,array("options"=>" min10"));
    // returns hello world, because the string is 11 chars long

    Bisher habe ich immer wieder auf eigene Reguläre Ausdrücke oder andere Libs zur Validierung verwendet, die mir nie so 100% zugesagt haben. Aber seit dir Funktion filter_var in PHP 5 existiert, ist das Validieren von Eingabedaten doch deutlich einfacher geworden und kostet wesentlich weniger Zeit bei der Entwicklung. Damit ist für mich jedenfalls das Problem der Validierung von Eingabedaten (vor allem bei der Validierung von E-Mail Adessen und URLs) erst mal gelöst und ich kann mich wieder anderen Themen widmen.

    Ergänzung:
    Neben der filter_var Funktion, gibt es noch ein paar ähnliche Funktionen.

    filter_var_array() Nimmt mehrere Variablen entgegen und filtert sie optional
    filter_input() Nimmt Variable von Außen entgegen und filtert sie optional
    filter_input_array() Nimmt mehrere Variablen von Außen entgegen und filtert sie optional Informationen über den Callback-Typ

    Sweetalert – Ein schöner Ersatz für JavaScript alert

    Sweetalert ist eine hübsche und anpassbare JavaScript Bibliothek , um die native Javascript Dialoge alert, confirm und prompt zu ersetzen. Sweetalert ist responsive, so das diese Bibliothek auf allen Geräten wie Smartphones, Desktop PCs oder Tabletts funktioniert.

    GitHub:
    https://github.com/msoftware/sweetalert

    Demo:
    http://test.1br.de/sweetalert/example/

    Sweetalert verwenden

    Trage die Dateien sweet-alert.js und sweet-alert.css in dem HTML Header ein

    • lib/sweet-alert.min.js
    • lib/sweet-alert.css

    Um einen Alert anzuzeigen, kann man nun die folgende Zeile aufrufen:

    sweetAlert("title", "message", "type");
    

    Über den „type“ wird das icon des Alert Dialoges festgelegt. Dabei kann man zwischen folgenden Typen wählen:

    • warning
    • error
    • success
    • info

    Zusätzlich kann man das alert Fenster noch über eine Reihe von Parametern konfigurieren. Siehe unten:

    Argument Default value Description
    title null (required) The title of the modal. It can either be added to the object under the key “title” or passed as the first parameter of the function.
    text null A description for the modal. It can either be added to the object under the key “text” or passed as the second parameter of the function.
    type null The type of the modal. SweetAlert comes with 4 built-in types which will show a corresponding icon animation: “warning”, “error”, “success” and “info”. It can either be put in the array under the key “type” or passed as the third parameter of the function.
    allowOutsideClick FALSE If set to true, the user can dismiss the modal by clicking outside it.
    showCancelButton FALSE If set to true, a “Cancel”-button will be shown, which the user can click on to dismiss the modal.
    confirmButtonText “OK” Use this to change the text on the “Confirm”-button. If showCancelButton is set as true, the confirm button will automatically show “Confirm” instead of “OK”.
    confirmButtonColor “#AEDEF4″ Use this to change the background color of the “Confirm”-button (must be a HEX value).
    cancelButtonText “Cancel” Use this to change the text on the “Cancel”-button.
    closeOnConfirm TRUE Set to false if you want the modal to stay open even if the user presses the “Confirm”-button. This is especially useful if the function attached to the “Confirm”-button is another SweetAlert.
    imageUrl null Add a customized icon for the modal. Should contain a string with the path to the image.
    imageSize “80×80″ If imageUrl is set, you can specify imageSize to describes how big you want the icon to be in px. Pass in a string with two values separated by an “x”. The first value is the width, the second is the height.

    Ergänzung:
    Ein Nachteil von Sweetalert ist, dass man alle alert aufrufe durch Aufrufe der Sweetalert Funktion ersetzen muss. In manchen Fällen kann das aber sehr viel Arbeit sein oder auf Grund von technischen Restriktionen oder Software Lizenzen nicht möglich. In diesem Fall kann man aber einfach die alert Funktion des Browsers austauschen, so dass die Sweetalert Funktion die alert Funktion ersetzt.

    Der Snippet, der dieses kleine Stück JavaScript Magie ermöglicht, sieht wie folgt aus:

    (function() {
    window.alert = function() {
    sweetAlert("Alert", arguments[0], "info");
    };
    })();

    Gartner veröffentlicht die Top 10 Technology Trends für das Jahr 2015

    Gartner hat mal wieder die Top Technologie Trends für das kommende Jahr zusammengestellt und in einer Top 10 Liste veröffentlicht. Auch dieses Jahr sind wieder mal ein paar alte Bekannte zu finden, aber es ist auch Neues dabei. Der Vergleich der Top Trends für 2014 und 2015 zeigt, das der Medizin Sektor nicht mehr so sehr im Fokus steht und auch das Web basierte Lernen es nicht mehr in die Top 10 geschafft hat. Weiter im Trend sind dafür aber der 3D Druck, Big Data Technologien, Mobile Themen und die Cloud.

    Meine persönliche Einschätzung zu den vier Themen
    1. 3D Druck
    Ein sehr spannendes Thema, das ein riesiges Potential hat. Aber hier ist noch viel Entwicklungsarbeit zu leisten, bis man im Supermarkt seine eigenen Produkte drucken lassen kann oder ganze Gebäude in Massen druckt. Momentan ist der 3D Druck noch einigen wenigen Technik affinen Menschen zuzumuten die Spaß an Neuem haben und bereit sind Zeit und Geld zu investieren um personalisierte Vasen zu drucken.

    2. Big Data und Datenanalyse
    Das Speichern und analysieren von großen Datenmengen aus unterschiedlichen Quellen ist ein sehr wichtiges Thema und eigentlich kein neuer Trend. Nur hat das Kind nun endlich einen Namen bekommen. Der Endkunde hat aber nur indirekt Kontakt mit Big Data Themen, denn allzu oft werden hier mehr oder weniger persönliche Daten zu Analyse Zwecken genutzt, ohne dass der Inhaber der Informationen nichts darüber weiß. Aber auch wenn Datenschützer immer wieder vor Big Data warnen, kann man auch andere Daten aus Produktionsprozessen oder dem Management analysieren und Prozesse optimieren, Umsätze steigern, Kosten sparen und die Zukunft vorhersagen :-)

    3. Mobile Themen
    Ein klares Trend Thema, das ich seit mindestens 10 Jahren aktiv verfolge und das im Hype Zyklus mittlerweile schon das Plateau der Produktivität erreicht hat. Trotzdem ist hier noch soviel ungenutztes Potenzial vorhanden dass es sich auch jetzt noch lohnt hier einzusteigen.

    4. Die Cloud
    Vor der Dotcom Blase 2000 war Cloud unter der Bezeichnung ASP (Applikation Service Provider) schon mal ein Thema und genau genommen ist selbst Webhosting ein Cloud Thema.
    Scheinbar hat sich ASP die Cloud nun aber etabliert und es gibt fast keine IT Infrastruktur, die man nicht in der Cloud anbieten kann. Momentan gehen Cloud Dienste wie geschnitten Brot. Ob das so bleibt ist eine Frage, die mich sehr beschäftigt. Allerdings werden Festplatten und Datentarife immer preiswerter und in Kombination mit Mobile ist die Cloud ein echter Mehrwert. Mittlerweile bin ich selbst auch von diversen Cloud Dienstleistern wie Audible, Google Play Music, Watchever,  etc. abhängig und die Geschäftsmodelle sind tragfähig und erzeugen nennenswerte Umsätze und sogar Gewinne.

    Die Gartner Top 10 Liste für 2015 findet man unter http://www.gartner.com/newsroom/id/2867917. Eine deutsche Übersetzung ist unter http://t3n.de/news/gartner-tech-trends-fuer-2015-571407/ zu finden.

    Die Trends für 2015

    1. Computing Everywhere

    2. Das Internet der Dinge

    3. 3D-Druck

    4. Neue Formen der Datenanalyse

    5. Kontextbasierte Systeme

    6. Intelligente Maschinen

    7. Cloud Computing

    8. Software-Defined Applications and Infrastructure

    9. Web-Scale IT

    10. Risikobasierte Sicherheits- und Schutzmaßnahmen

    Hier noch mal die Top 10 Technologie Trends für das Jahr 2014
    (Quelle: http://www.cio.de/strategien/2940087/)

    1. Transaktionen in die Wolke

    2. 3D-Printing

    3. CIO oder CDO

    4. Big Data-Analytics

    5. Mangelhafte Mobile Apps

    6. Medizinische Datenbanken

    7. Vorausschauende Patienten

    8. Web-basiertes Lernen

    9. Branchenübergreifende Innovationen

    10. Verluste an geistigem Eigentum